Angband
unit-test-data.h
Go to the documentation of this file.
1 /* unit-test-data.h
2  * Predefined data for tests
3  */
4 
5 #ifndef UNIT_TEST_DATA
6 #define UNIT_TEST_DATA
7 
8 #ifndef TEST_DATA
9  #ifdef __GNUC__
10  #define TEST_DATA __attribute__ ((unused))
11  #else
12  #define TEST_DATA
13  #endif
14 #endif /* TEST_DATA */
15 
16 #include "angband.h"
17 #include "init.h"
18 #include "mon-lore.h"
19 #include "monster.h"
20 #include "obj-tval.h"
21 #include "player.h"
22 #include "player-calcs.h"
23 
24 /* 30 = TMD_MAX */
25 static s16b TEST_DATA test_timed[30] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
26 };
27 
28 static struct object_base TEST_DATA sword_base = {
29  .name = "Test Sword",
30  .tval = TV_SWORD,
31  .next = NULL,
32  .break_perc = 50,
33 };
34 
35 static struct object_base TEST_DATA light_base = {
36  .name = "Test Light~",
37  .tval = TV_LIGHT,
38  .next = NULL,
39  .break_perc = 50,
40 };
41 
42 static struct object_base TEST_DATA flask_base = {
43  .name = "Test Flask~",
44  .tval = TV_FLASK,
45  .next = NULL,
46  .break_perc = 100,
47 };
48 
49 static struct object_base TEST_DATA rod_base = {
50  .name = "Test Rod~",
51  .tval = TV_ROD,
52  .next = NULL,
53 };
54 
56  .name = "Test Artifact",
57  .text = "A test artifact.",
58  .aidx = 0,
59  .next = NULL,
60  .tval = TV_SWORD,
61  .sval = 8, //Hack - depends on edit file order - Long Sword (NRM)
62  .to_a = 1,
63  .to_h = 2,
64  .to_d = 3,
65  .ac = 5,
66  .dd = 2,
67  .ds = 5,
68  .weight = 16,
69  .cost = 40,
70 };
71 
73  .name = "Test Longsword",
74  .text = "A test longsword [0].",
75  .base = &sword_base,
76  .kidx = 0,
77  .tval = TV_SWORD,
78  .sval = 8, //Hack - depends on edit file order - Long Sword (NRM)
79  .pval = {
80  .base = 0,
81  .dice = 0,
82  .sides = 0,
83  .m_bonus = 0,
84  },
85  .modifiers = {
86  [OBJ_MOD_STR] = { 0, 0, 0, 0 },
87  [OBJ_MOD_INT] = { 0, 0, 0, 0 },
88  [OBJ_MOD_WIS] = { 0, 0, 0, 0 },
89  [OBJ_MOD_DEX] = { 0, 0, 0, 0 },
90  [OBJ_MOD_CON] = { 0, 0, 0, 0 },
91  [OBJ_MOD_STEALTH] = { 0, 0, 0, 0 },
92  [OBJ_MOD_SEARCH] = { 0, 0, 0, 0 },
93  [OBJ_MOD_INFRA] = { 0, 0, 0, 0 },
94  [OBJ_MOD_TUNNEL] = { 0, 0, 0, 0 },
95  [OBJ_MOD_SPEED] = { 0, 0, 0, 0 },
96  [OBJ_MOD_BLOWS] = { 0, 0, 0, 0 },
97  [OBJ_MOD_SHOTS] = { 0, 0, 0, 0 },
98  [OBJ_MOD_MIGHT] = { 0, 0, 0, 0 },
99  [OBJ_MOD_LIGHT] = { 0, 0, 0, 0 },
100  },
101  .to_h = {
102  .base = 1,
103  .dice = 0,
104  .sides = 0,
105  .m_bonus = 0,
106  },
107  .to_d = {
108  .base = 1,
109  .dice = 0,
110  .sides = 0,
111  .m_bonus = 0,
112  },
113  .to_a = {
114  .base = 2,
115  .dice = 0,
116  .sides = 0,
117  .m_bonus = 0,
118  },
119 
120  .dd = 4,
121  .ds = 6,
122  .weight = 16,
123 
124  .cost = 20,
125 
126  .d_attr = 0,
127  .d_char = L'|',
128 
129  .alloc_prob = 20,
130  .alloc_min = 1,
131  .alloc_max = 10,
132  .level = 0,
133 
134  .effect = NULL,
135 
136  .gen_mult_prob = 0,
137  .flavor = NULL,
138 };
139 
141  .name = "Test Torch",
142  .text = "A test torch [1].",
143  .base = &light_base,
144  .next = NULL,
145  .kidx = 2,
146  .tval = TV_LIGHT,
147  .sval = 1, //Hack - depends on edit file order - Wooden Torch (NRM)
148  .pval = {
149  .base = 5000,
150  .dice = 0,
151  .sides = 0,
152  .m_bonus = 0,
153  },
154 
155  .to_h = {
156  .base = 0,
157  .dice = 0,
158  .sides = 0,
159  .m_bonus = 0,
160  },
161  .to_d = {
162  .base = 0,
163  .dice = 0,
164  .sides = 0,
165  .m_bonus = 0,
166  },
167  .to_a = {
168  .base = 0,
169  .dice = 0,
170  .sides = 0,
171  .m_bonus = 0,
172  },
173  .ac = 0,
174 
175  .dd = 1,
176  .ds = 1,
177  .weight = 22,
178 
179  .cost = 1,
180 
181  .flags = { 0, 0, 4, 0 },
182  .kind_flags = { 32, 0 },
183 
184  .modifiers = {
185  [OBJ_MOD_STR] = { 0, 0, 0, 0 },
186  [OBJ_MOD_INT] = { 0, 0, 0, 0 },
187  [OBJ_MOD_WIS] = { 0, 0, 0, 0 },
188  [OBJ_MOD_DEX] = { 0, 0, 0, 0 },
189  [OBJ_MOD_CON] = { 0, 0, 0, 0 },
190  [OBJ_MOD_STEALTH] = { 0, 0, 0, 0 },
191  [OBJ_MOD_SEARCH] = { 0, 0, 0, 0 },
192  [OBJ_MOD_INFRA] = { 0, 0, 0, 0 },
193  [OBJ_MOD_TUNNEL] = { 0, 0, 0, 0 },
194  [OBJ_MOD_SPEED] = { 0, 0, 0, 0 },
195  [OBJ_MOD_BLOWS] = { 0, 0, 0, 0 },
196  [OBJ_MOD_SHOTS] = { 0, 0, 0, 0 },
197  [OBJ_MOD_MIGHT] = { 0, 0, 0, 0 },
198  [OBJ_MOD_LIGHT] = { 1, 0, 0, 0 },
199  },
200  .el_info = {
201  [ELEM_ACID] = { 0, 0 },
202  [ELEM_ELEC] = { 0, 0 },
203  [ELEM_FIRE] = { 0, 0 },
204  [ELEM_COLD] = { 0, 0 },
205  [ELEM_POIS] = { 0, 0 },
206  [ELEM_LIGHT] = { 0, 0 },
207  [ELEM_DARK] = { 0, 0 },
208  [ELEM_SOUND] = { 0, 0 },
209  [ELEM_SHARD] = { 0, 0 },
210  [ELEM_NEXUS] = { 0, 0 },
211  [ELEM_NETHER] = { 0, 0 },
212  [ELEM_CHAOS] = { 0, 0 },
213  [ELEM_DISEN] = { 0, 0 },
214  [ELEM_WATER] = { 0, 0 },
215  [ELEM_ICE] = { 0, 0 },
216  [ELEM_GRAVITY] = { 0, 0 },
217  [ELEM_INERTIA] = { 0, 0 },
218  [ELEM_FORCE] = { 0, 0 },
219  [ELEM_TIME] = { 0, 0 },
220  [ELEM_PLASMA] = { 0, 0 },
221  [ELEM_METEOR] = { 0, 0 },
222  [ELEM_MISSILE] = { 0, 0 },
223  [ELEM_MANA] = { 0, 0 },
224  [ELEM_HOLY_ORB] = { 0, 0 },
225  [ELEM_ARROW] = { 0, 0 },
226  },
227 
228  .brands = NULL,
229  .slays = NULL,
230 
231  .d_attr = 7,
232  .d_char = L'~',
233 
234  .alloc_prob = 70,
235  .alloc_min = 1,
236  .alloc_max = 40,
237  .level = 1,
238 
239  .effect = NULL,
240  .power = 0,
241  .effect_msg = NULL,
242  .time = {
243  .base = 0,
244  .dice = 0,
245  .sides = 0,
246  .m_bonus = 0,
247  },
248  .charge = {
249  .base = 0,
250  .dice = 0,
251  .sides = 0,
252  .m_bonus = 0,
253  },
254 
255  .gen_mult_prob = 0,
256  .stack_size = {
257  .base = 0,
258  .dice = 0,
259  .sides = 0,
260  .m_bonus = 0,
261  },
262  .flavor = NULL,
263 };
264 
266  .name = "Test Lantern",
267  .text = "A test lantern.",
268  .base = &light_base,
269  .next = NULL,
270  .kidx = 3,
271  .tval = TV_LIGHT,
272  .sval = 2, //Hack - depends on edit file order - Lantern (NRM)
273  .pval = {
274  .base = 5000,
275  .dice = 0,
276  .sides = 0,
277  .m_bonus = 0,
278  },
279 
280  .to_h = {
281  .base = 0,
282  .dice = 0,
283  .sides = 0,
284  .m_bonus = 0,
285  },
286  .to_d = {
287  .base = 0,
288  .dice = 0,
289  .sides = 0,
290  .m_bonus = 0,
291  },
292  .to_a = {
293  .base = 0,
294  .dice = 0,
295  .sides = 0,
296  .m_bonus = 0,
297  },
298  .ac = 0,
299 
300  .dd = 1,
301  .ds = 1,
302  .weight = 50,
303 
304  .cost = 1,
305 
306  .flags = { 0, 0, 8, 0 }, /* OF_TAKES_FUEL */
307  .kind_flags = { 32, 0 },
308 
309  .modifiers = {
310  [OBJ_MOD_STR] = { 0, 0, 0, 0 },
311  [OBJ_MOD_INT] = { 0, 0, 0, 0 },
312  [OBJ_MOD_WIS] = { 0, 0, 0, 0 },
313  [OBJ_MOD_DEX] = { 0, 0, 0, 0 },
314  [OBJ_MOD_CON] = { 0, 0, 0, 0 },
315  [OBJ_MOD_STEALTH] = { 0, 0, 0, 0 },
316  [OBJ_MOD_SEARCH] = { 0, 0, 0, 0 },
317  [OBJ_MOD_INFRA] = { 0, 0, 0, 0 },
318  [OBJ_MOD_TUNNEL] = { 0, 0, 0, 0 },
319  [OBJ_MOD_SPEED] = { 0, 0, 0, 0 },
320  [OBJ_MOD_BLOWS] = { 0, 0, 0, 0 },
321  [OBJ_MOD_SHOTS] = { 0, 0, 0, 0 },
322  [OBJ_MOD_MIGHT] = { 0, 0, 0, 0 },
323  [OBJ_MOD_LIGHT] = { 2, 0, 0, 0 },
324  },
325  .el_info = {
326  [ELEM_ACID] = { 0, 0 },
327  [ELEM_ELEC] = { 0, 0 },
328  [ELEM_FIRE] = { 0, 4 },
329  [ELEM_COLD] = { 0, 0 },
330  [ELEM_POIS] = { 0, 0 },
331  [ELEM_LIGHT] = { 0, 0 },
332  [ELEM_DARK] = { 0, 0 },
333  [ELEM_SOUND] = { 0, 0 },
334  [ELEM_SHARD] = { 0, 0 },
335  [ELEM_NEXUS] = { 0, 0 },
336  [ELEM_NETHER] = { 0, 0 },
337  [ELEM_CHAOS] = { 0, 0 },
338  [ELEM_DISEN] = { 0, 0 },
339  [ELEM_WATER] = { 0, 0 },
340  [ELEM_ICE] = { 0, 0 },
341  [ELEM_GRAVITY] = { 0, 0 },
342  [ELEM_INERTIA] = { 0, 0 },
343  [ELEM_FORCE] = { 0, 0 },
344  [ELEM_TIME] = { 0, 0 },
345  [ELEM_PLASMA] = { 0, 0 },
346  [ELEM_METEOR] = { 0, 0 },
347  [ELEM_MISSILE] = { 0, 0 },
348  [ELEM_MANA] = { 0, 0 },
349  [ELEM_HOLY_ORB] = { 0, 0 },
350  [ELEM_ARROW] = { 0, 0 },
351  },
352 
353  .brands = NULL,
354  .slays = NULL,
355 
356  .d_attr = 0,
357  .d_char = L'~',
358 
359  .alloc_prob = 10,
360  .alloc_min = 1,
361  .alloc_max = 10,
362  .level = 0,
363 
364  .effect = NULL,
365  .power = 0,
366  .effect_msg = NULL,
367  .time = {
368  .base = 0,
369  .dice = 0,
370  .sides = 0,
371  .m_bonus = 0,
372  },
373  .charge = {
374  .base = 0,
375  .dice = 0,
376  .sides = 0,
377  .m_bonus = 0,
378  },
379 
380  .gen_mult_prob = 0,
381  .stack_size = {
382  .base = 0,
383  .dice = 0,
384  .sides = 0,
385  .m_bonus = 0,
386  },
387  .flavor = NULL,
388 };
389 
391  .name = "Test Flask",
392  .text = "A test flask.",
393  .base = &flask_base,
394  .kidx = 1,
395  .tval = TV_FLASK,
396  .sval = 0,
397  .pval = {
398  .base = 7500,
399  .dice = 0,
400  .sides = 0,
401  .m_bonus = 0,
402  },
403 
404  .modifiers = {
405  [OBJ_MOD_STR] = { 0, 0, 0, 0 },
406  [OBJ_MOD_INT] = { 0, 0, 0, 0 },
407  [OBJ_MOD_WIS] = { 0, 0, 0, 0 },
408  [OBJ_MOD_DEX] = { 0, 0, 0, 0 },
409  [OBJ_MOD_CON] = { 0, 0, 0, 0 },
410  [OBJ_MOD_STEALTH] = { 0, 0, 0, 0 },
411  [OBJ_MOD_SEARCH] = { 0, 0, 0, 0 },
412  [OBJ_MOD_INFRA] = { 0, 0, 0, 0 },
413  [OBJ_MOD_TUNNEL] = { 0, 0, 0, 0 },
414  [OBJ_MOD_SPEED] = { 0, 0, 0, 0 },
415  [OBJ_MOD_BLOWS] = { 0, 0, 0, 0 },
416  [OBJ_MOD_SHOTS] = { 0, 0, 0, 0 },
417  [OBJ_MOD_MIGHT] = { 0, 0, 0, 0 },
418  [OBJ_MOD_LIGHT] = { 0, 0, 0, 0 },
419  },
420  .to_h = {
421  .base = 0,
422  .dice = 0,
423  .sides = 0,
424  .m_bonus = 0,
425  },
426  .to_d = {
427  .base = 0,
428  .dice = 0,
429  .sides = 0,
430  .m_bonus = 0,
431  },
432  .to_a = {
433  .base = 0,
434  .dice = 0,
435  .sides = 0,
436  .m_bonus = 0,
437  },
438 
439  .dd = 1,
440  .ds = 4,
441  .weight = 20,
442 
443  .cost = 3,
444 
445  .d_attr = 11,
446  .d_char = L'!',
447 
448  .alloc_prob = 50,
449  .alloc_min = 1,
450  .alloc_max = 100,
451  .level = 1,
452 
453  .effect = NULL,
454 
455  .gen_mult_prob = 0,
456  .flavor = NULL,
457 };
458 
460  .name = "Test Rod of Treasure Location",
461  .text = "A test rod of treasure location.",
462  .base = &rod_base,
463  .kidx = 1,
464  .tval = TV_ROD,
465  .sval = 1,
466  .pval = {
467  .base = 0,
468  .dice = 0,
469  .sides = 0,
470  .m_bonus = 0,
471  },
472 
473  .modifiers = {
474  [OBJ_MOD_STR] = { 0, 0, 0, 0 },
475  [OBJ_MOD_INT] = { 0, 0, 0, 0 },
476  [OBJ_MOD_WIS] = { 0, 0, 0, 0 },
477  [OBJ_MOD_DEX] = { 0, 0, 0, 0 },
478  [OBJ_MOD_CON] = { 0, 0, 0, 0 },
479  [OBJ_MOD_STEALTH] = { 0, 0, 0, 0 },
480  [OBJ_MOD_SEARCH] = { 0, 0, 0, 0 },
481  [OBJ_MOD_INFRA] = { 0, 0, 0, 0 },
482  [OBJ_MOD_TUNNEL] = { 0, 0, 0, 0 },
483  [OBJ_MOD_SPEED] = { 0, 0, 0, 0 },
484  [OBJ_MOD_BLOWS] = { 0, 0, 0, 0 },
485  [OBJ_MOD_SHOTS] = { 0, 0, 0, 0 },
486  [OBJ_MOD_MIGHT] = { 0, 0, 0, 0 },
487  [OBJ_MOD_LIGHT] = { 0, 0, 0, 0 },
488  },
489  .to_h = {
490  .base = 0,
491  .dice = 0,
492  .sides = 0,
493  .m_bonus = 0,
494  },
495  .to_d = {
496  .base = 0,
497  .dice = 0,
498  .sides = 0,
499  .m_bonus = 0,
500  },
501  .to_a = {
502  .base = 0,
503  .dice = 0,
504  .sides = 0,
505  .m_bonus = 0,
506  },
507 
508  .dd = 0,
509  .ds = 0,
510  .weight = 15,
511 
512  .cost = 1000,
513 
514  .d_attr = 0,
515  .d_char = L'-',
516 
517  .alloc_prob = 30,
518  .alloc_min = 8,
519  .alloc_max = 75,
520  .level = 5,
521 
522  .effect = NULL,
523 
524  .gen_mult_prob = 0,
525  .flavor = NULL,
526 };
527 
528 static struct object_kind TEST_DATA test_gold = {
529  .name = "Test Gold",
530  .text = "Test gold [2].",
531  .kidx = 2,
532  .tval = TV_GOLD,
533  .sval = 0,
534  .pval = {
535  .base = 0,
536  .dice = 0,
537  .sides = 0,
538  .m_bonus = 0,
539  },
540 
541  .modifiers = {
542  [OBJ_MOD_STR] = { 0, 0, 0, 0 },
543  [OBJ_MOD_INT] = { 0, 0, 0, 0 },
544  [OBJ_MOD_WIS] = { 0, 0, 0, 0 },
545  [OBJ_MOD_DEX] = { 0, 0, 0, 0 },
546  [OBJ_MOD_CON] = { 0, 0, 0, 0 },
547  [OBJ_MOD_STEALTH] = { 0, 0, 0, 0 },
548  [OBJ_MOD_SEARCH] = { 0, 0, 0, 0 },
549  [OBJ_MOD_INFRA] = { 0, 0, 0, 0 },
550  [OBJ_MOD_TUNNEL] = { 0, 0, 0, 0 },
551  [OBJ_MOD_SPEED] = { 0, 0, 0, 0 },
552  [OBJ_MOD_BLOWS] = { 0, 0, 0, 0 },
553  [OBJ_MOD_SHOTS] = { 0, 0, 0, 0 },
554  [OBJ_MOD_MIGHT] = { 0, 0, 0, 0 },
555  [OBJ_MOD_LIGHT] = { 0, 0, 0, 0 },
556  },
557  .to_h = {
558  .base = 0,
559  .dice = 0,
560  .sides = 0,
561  .m_bonus = 0,
562  },
563  .to_d = {
564  .base = 0,
565  .dice = 0,
566  .sides = 0,
567  .m_bonus = 0,
568  },
569  .to_a = {
570  .base = 0,
571  .dice = 0,
572  .sides = 0,
573  .m_bonus = 0,
574  },
575 
576  .dd = 1,
577  .ds = 1,
578  .weight = 1,
579 
580  .cost = 0,
581 
582  .d_attr = 0,
583  .d_char = L'$',
584 
585  .alloc_prob = 0,
586  .alloc_min = 0,
587  .alloc_max = 0,
588  .level = 0,
589 
590  .effect = NULL,
591 
592  .gen_mult_prob = 0,
593  .flavor = NULL,
594 };
595 
596 static struct player_race TEST_DATA test_race = {
597  .name = "TestRace",
598  .r_adj = {
599  [STAT_STR] = +2,
600  [STAT_DEX] = +1,
601  [STAT_CON] = +3,
602  [STAT_INT] = -1,
603  [STAT_WIS] = -2,
604  },
605  .r_skills = {
606  [SKILL_DISARM] = 0,
607  [SKILL_DEVICE] = 5,
608  [SKILL_SAVE] = 10,
609  [SKILL_STEALTH] = -5,
610  [SKILL_SEARCH] = -10,
611  [SKILL_SEARCH_FREQUENCY] = 10,
612  [SKILL_TO_HIT_MELEE] = 0,
613  [SKILL_TO_HIT_BOW] = 0,
614  [SKILL_TO_HIT_THROW] = 0,
615  [SKILL_DIGGING] = 0,
616  },
617 
618  .r_mhp = 10,
619  .r_exp = 110,
620 
621  .b_age = 14,
622  .m_age = 6,
623 
624  .base_hgt = 72,
625  .mod_hgt = 6,
626  .base_wgt = 150,
627  .mod_wgt = 20,
628 
629  .infra = 40,
630 
631  .history = NULL,
632 };
633 
635  .kind = &test_torch,
636  .min = 3,
637  .max = 5,
638  .next = NULL,
639 };
640 
642  .kind = &test_longsword,
643  .min = 1,
644  .max = 1,
645  .next = &start_torch,
646 };
647 
649  .name = "TestClass",
650  .title = {
651  "TestTitle0",
652  "TestTitle1",
653  "TestTitle2",
654  "TestTitle3",
655  "TestTitle4",
656  "TestTitle5",
657  "TestTitle6",
658  "TestTitle7",
659  "TestTitle8",
660  "TestTitle9",
661  },
662 
663  .c_adj = {
664  [STAT_STR] = +1,
665  [STAT_DEX] = +2,
666  [STAT_CON] = -1,
667  [STAT_INT] = -2,
668  [STAT_WIS] = +3,
669  },
670 
671  .c_skills = {
672  [SKILL_DISARM] = 25,
673  [SKILL_DEVICE] = 18,
674  [SKILL_SAVE] = 18,
675  [SKILL_STEALTH] = 1,
676  [SKILL_SEARCH] = 14,
678  [SKILL_TO_HIT_MELEE] = 70,
679  [SKILL_TO_HIT_BOW] = 55,
680  [SKILL_TO_HIT_THROW] = 55,
681  [SKILL_DIGGING] = 0,
682  },
683 
684  .x_skills = {
685  [SKILL_DISARM] = 10,
686  [SKILL_DEVICE] = 7,
687  [SKILL_SAVE] = 10,
688  [SKILL_STEALTH] = 0,
689  [SKILL_SEARCH] = 0,
691  [SKILL_TO_HIT_MELEE] = 45,
692  [SKILL_TO_HIT_BOW] = 45,
693  [SKILL_TO_HIT_THROW] = 45,
694  [SKILL_DIGGING] = 0,
695  },
696 
697  .c_mhp = 9,
698  .c_exp = 0,
699 
700  .max_attacks = 6,
701  .min_weight = 30,
702  .att_multiply = 5,
703 
704  .sense_base = 7000,
705  .sense_div = 40,
706 
707  .start_items = &start_longsword,
708 };
709 
711  .next = NULL,
712  .name = "townsfolk",
713  .text = "Townsfolk",
714  .flags = "\0\0\0\0\0\0\0\0\0\0",
715  .spell_flags = "\0\0\0\0\0\0\0\0\0\0\0",
716  .d_char = 116,
717  .pain = NULL,
718 
719 };
720 
721 #define _NOBLOW { .method = RBM_NONE, .effect = RBE_NONE, .d_dice = 0, .d_side = 0 }
722 
723 static struct monster_blow TEST_DATA test_blow[4] = {
724  {
725  .method = RBM_HIT,
726  .effect = RBE_HURT,
727  .dice = {
728  .base = 0,
729  .dice = 3,
730  .sides = 1,
731  .m_bonus = 0,
732  },
733  .times_seen = 1,
734  },
735  {
736  .method = RBM_NONE,
737  .effect = RBE_NONE,
738  .dice = {
739  .base = 0,
740  .dice = 0,
741  .sides = 0,
742  .m_bonus = 0,
743  },
744  .times_seen = 0,
745  },
746  {
747  .method = RBM_NONE,
748  .effect = RBE_NONE,
749  .dice = {
750  .base = 0,
751  .dice = 0,
752  .sides = 0,
753  .m_bonus = 0,
754  },
755  .times_seen = 0,
756  },
757  {
758  .method = RBM_NONE,
759  .effect = RBE_NONE,
760  .dice = {
761  .base = 0,
762  .dice = 0,
763  .sides = 0,
764  .m_bonus = 0,
765  },
766  .times_seen = 0,
767  }
768 };
769 
770 static bool TEST_DATA test_blows_known[4] = {
771  TRUE,
772  FALSE,
773  FALSE,
774  FALSE,
775 };
776 
778  .next = NULL,
779  .ridx = 0,
780  .name = "Human",
781  .text = "A random test human",
782 
783  .base = &test_rb_info,
784 
785  .avg_hp = 10,
786  .ac = 12,
787  .sleep = 0,
788  .aaf = 20,
789  .speed = 110,
790  .mexp = 50,
791  .power = 1,
792  .scaled_power = 1,
793  .freq_innate = 0,
794  .freq_spell = 0,
795 
796  .blow = &test_blow[0],
797 
798  .level = 1,
799  .rarity = 1,
800 
801  .d_attr = 0,
802  .d_char = 't',
803 
804  .max_num = 100,
805  .cur_num = 0,
806 
807  .drops = NULL,
808 };
809 
811  .ridx = 0,
812  .sights = 1,
813  .deaths = 0,
814  .pkills = 0,
815  .tkills = 5,
816  .wake = 1,
817  .ignore = 4,
818  .drop_gold = 0,
819  .drop_item = 0,
820  .cast_innate = 0,
821  .cast_spell = 0,
822 
823  .blows = &test_blow[0],
824 
825  .flags = "\0\0\0\0\0\0\0\0\0\0",
826  .spell_flags = "\0\0\0\0\0\0\0\0\0\0\0",
827  .drops = NULL,
828  .friends = NULL,
829  .friends_base = NULL,
830  .mimic_kinds = NULL,
831  .all_known = FALSE,
832  .blow_known = &test_blows_known[0],
833  .armour_known = FALSE,
834  .drop_known = FALSE,
835  .sleep_known = FALSE,
836  .spell_freq_known = FALSE
837 };
838 
839 #undef _NOBLOW
840 
842  .f_max = 2,
843  .trap_max = 2,
844  .k_max = 2,
845  .a_max = 2,
846  .e_max = 2,
847  .r_max = 2,
848  .mp_max = 2,
849  .s_max = 2,
850  .pit_max = 2,
851  .act_max = 2,
852  .level_monster_max = 2,
853 };
854 
856  .type = 5,
857  .name = "light",
858  .obj = NULL,
859 };
860 
861 static struct quest TEST_DATA test_quest = {
862  .next = NULL,
863  .index = 0,
864  .name = "Test",
865  .level = 1,
866  .race = &test_r_human,
867  .cur_num = 0,
868  .max_num = 4,
869 };
870 
872  .next = NULL,
873  .name = "Humanoid",
874  .count = 12,
875 };
876 
878  .playing = 1,
879  .autosave = 0,
880  .generate_level = 0,
881  .energy_use = 0,
882  .new_spells = 0,
883 
884  .health_who = NULL,
885  .monster_race = NULL,
886  .object = NULL,
887  .object_kind = NULL,
888 
889  .notice = 0,
890  .update = 0,
891  .redraw = 0,
892 
893  .command_wrk = 0,
894 
895  .create_up_stair = 0,
896  .create_down_stair = 0,
897 
898  .running = 0,
899  .running_withpathfind = 0,
900  .running_firststep = 0,
901 
902  .quiver = NULL,
903  .inven = NULL,
904 
905  .total_weight = 0,
906  .inven_cnt = 0,
907  .equip_cnt = 0,
908  .quiver_cnt = 0,
909 };
910 
911 static struct player TEST_DATA test_player = {
912  .py = 1,
913  .px = 1,
914  .race = &test_race,
915  .class = &test_class,
916  .hitdie = 10,
917  .expfact = 100,
918  .age = 12,
919  .ht = 40,
920  .wt = 80,
921  .au = 500,
922  .max_depth = 10,
923  .depth = 6,
924  .max_lev = 3,
925  .lev = 3,
926  .max_exp = 100,
927  .exp = 80,
928  .mhp = 20,
929  .chp = 14,
930  .msp = 12,
931  .csp = 11,
932  .stat_max = {
933  [STAT_STR] = 14,
934  [STAT_DEX] = 12,
935  [STAT_CON] = 14,
936  [STAT_WIS] = 10,
937  [STAT_INT] = 8,
938  },
939  .stat_cur = {
940  [STAT_STR] = 14,
941  [STAT_DEX] = 11,
942  [STAT_CON] = 14,
943  [STAT_WIS] = 10,
944  [STAT_INT] = 8,
945  },
946  .timed = test_timed,
947  .word_recall = 0,
948  .energy = 100,
949  .food = 5000,
950  .player_hp = {
951  5, 10, 15, 20, 25, 30, 35, 40, 45, 50,
952  55, 60, 65, 70, 75, 80, 85, 90, 95, 100,
953  105, 110, 115, 120, 125, 130, 135, 140, 145, 150,
954  155, 160, 165, 170, 175, 180, 185, 190, 195, 200,
955  205, 210, 215, 220, 225, 230, 235, 240, 245, 250
956  },
957  .history = "no history",
958  .is_dead = 0,
959  .wizard = 0,
960  .gear = NULL,
961  .upkeep = &test_player_upkeep,
962 };
963 
964 #endif /* !UNIT_TEST_DATA */