1 /**
2  ** Items.h - Names of items.
3  **
4  ** Written: 12/3/98 - JSF
5  **/
6 
7 /*
8 Copyright (C) 1998  Jeffrey S. Freedman
9 Copyright (C) 2000? - 2013 The Exult Team
10 
11 This program is free software; you can redistribute it and/or
12 modify it under the terms of the GNU General Public License
13 as published by the Free Software Foundation; either version 2
14 of the License, or (at your option) any later version.
15 
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 GNU General Public License for more details.
20 
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24 */
25 
26 #ifndef INCL_ITEMS
27 #define INCL_ITEMS 1
28 
29 #include  <iosfwd>
30 
31 // The game items' names.
32 int get_num_item_names();
33 char const *get_item_name(unsigned num);
34 void Set_item_name(unsigned num, char const *name);
35 
36 // Msgs. (0x400 - ).
37 int get_num_text_msgs();
38 char const *get_text_msg(unsigned num);
39 void Set_text_msg(unsigned num, char const *msg);
40 
41 // Frames, etc (0x500 - 0x5ff/0x685 (BG/SI)).
42 int get_num_misc_names();
43 char const *get_misc_name(unsigned num);
44 void Set_misc_name(unsigned num, char const *name);
45 
46 void Setup_text(bool si, bool expansion, bool sibeta);
47 void Free_text();
48 void Write_text_file();
49 
50 /*
51  *  Message #'s.  These are (offset-0x400) in text.flx and exultmsg.txt:
52  */
53 // Schedule barks.
54 const int first_move_aside = 0x00, last_move_aside = 0x02;  // For guards when blocked.
55 const int first_preach = 0x03, last_preach = 0x07;
56 const int first_preach2 = 0x08, last_preach2 = 0x0b;
57 const int first_amen = 0x0c, last_amen = 0x0f;
58 const int first_thief = 0x10, last_thief = 0x13;
59 const int first_talk = 0x14, last_talk = 0x16;
60 const int first_arrest = 0x17, last_arrest = 0x1a;
61 const int first_waiter_ask = 0x1b, last_waiter_ask = 0x1f;
62 const int first_more_food = 0x20, last_more_food = 0x24;
63 const int first_munch = 0x25, last_munch = 0x28;
64 const int first_farmer = 0x3f, last_farmer = 0x41;
65 const int first_miner = 0x42, last_miner = 0x44;
66 const int first_miner_gold = 0x45, last_miner_gold = 0x47;
67 const int first_farmer2 = 0x60, last_farmer2 = 0x62;
68 const int first_lamp_on = 0x63, last_lamp_on = 0x66;
69 const int lamp_off = 0x67;
70 const int new_candle = 0x68;
71 const int first_close_shutters = 0x71, last_close_shutters = 0x73;
72 const int first_open_shutters = 0x74, last_open_shutters = 0x76;
73 // Combat-related barks.
74 const int first_ouch = 0x29, last_ouch = 0x2c;
75 const int first_need_help = 0x30, last_need_help = 0x33;
76 const int first_will_help = 0x34, last_will_help = 0x36;
77 const int first_to_battle = 0x39, last_to_battle = 0x3b;
78 const int flee_screaming = 0x37;
79 const int first_flee = 0x48, last_flee = 0x52;
80 const int first_taunt = 0x53, last_taunt = 0x59;
81 const int goblin_ouch = 0xcc;
82 const int first_goblin_taunt = 0xcd, last_goblin_taunt = 0xce;
83 // Goblin barks 0xcf, 0xd0 and 0xd1 probably come here, but how???
84 const int goblin_need_help = 0xd2;
85 const int goblin_will_help = 0xd3;
86 const int goblin_flee_screaming = 0xd4;
87 const int first_goblin_flee = 0xd5, last_goblin_flee = 0xd9;
88 const int goblin_to_battle = 0xda;
89 // Thieving avatar warnings.
90 const int first_theft = 0x6e, last_theft = 0x70;
91 const int goblin_theft = 0xcb;
92 // Invisible thieving avatar warnings.
93 const int first_invis_theft = 0x85, last_invis_theft = 0x87;
94 const int goblin_invis_theft = 0xc8;
95 // Call guards.
96 const int first_call_guards_theft = 0x3c, last_call_guards_theft = 0x3e;
97 const int first_call_police = 0x69, last_call_police = 0x6d;
98 const int first_call_guards = 0x6c, last_call_guards = 0x6d;
99 const int first_goblin_call_police = 0xc6, last_goblin_call_police = 0xc7;
100 const int first_goblin_call_guards = 0xc6, last_goblin_call_guards = 0xc7;
101 const int goblin_call_guards_theft = 0xc9;
102 // Awoke sleeper.
103 const int heard_something = 0x95;
104 const int first_awakened = 0x95, last_awakened = 0x9a;
105 const int goblin_heard_something = 0xca;
106 const int goblin_awakened = 0xca;
107 // Magebane (SI only).
108 const int first_magebane_struck = 0x9b, last_magebane_struck = 0x9d;
109 // Hunger.
110 const int first_hunger = 0x77, last_hunger = 0x79;      // A little hungry.
111 const int first_needfood = 0x7a, last_needfood = 0x7c;  // Must have food.
112 const int first_starving = 0x7d, last_starving = 0x7f;  // Starving.
113 // Cold.
114 const int first_chilly = 0x9e, last_chilly = 0xa0;  // 0 - 9 temp
115 const int first_cold = 0xa1, last_cold = 0xa3;  // 10 - 19 temp
116 const int first_colder = 0xa4, last_colder = 0xa6;  // 20 - 29 temp
117 const int first_frostbite = 0xa7, last_frostbite = 0xa9;    // 30 - 39 temp
118 const int first_warming_in_cold_2 = 0xaa, last_warming_in_cold_2 = 0xb0; // < 30 temp
119 const int first_warming_in_cold = 0xb1, last_warming_in_cold = 0xb5; // 30+ temp
120 const int first_frostbite_2 = 0xb6, last_frostbite_2 = 0xb8;    // 40 - 49 temp
121 const int first_frostbite_3 = 0xb9, last_frostbite_3 = 0xbb;    // 50 - 59 temp
122 const int first_frozen = 0xbc, last_frozen = 0xbd;  // 60+ temp
123 const int first_warming_up_2 = 0xbe, last_warming_up_2 = 0xc1; // < 30 temp (warm area)
124 const int first_warming_up = 0xc2, last_warming_up = 0xc5;  // 30+ temp (warm area)
125 
126 //	Messages in exultmsg.txt ( - 0x400):
127 const int first_chair_thief = 0x100, last_chair_thief = 0x104;
128 const int first_waiter_banter = 0x105, last_waiter_banter = 0x107;
129 const int first_waiter_serve = 0x108, last_waiter_serve = 0x109;
130 const int first_bed_occupied = 0x10a, num_bed_occupied = 3;
131 const int first_catchup = 0x10d, last_catchup = 0x10f;
132 //const int with_help_from = 0x110, exult_team = 0x111, driven_by_exult = 0x112;
133 const int end_of_ultima7 = 0x113, end_of_britannia = 0x114;
134 const int you_cannot_do_that = 0x115, damn_avatar = 0x116;
135 const int blackgate_destroyed = 0x117, guardian_has_stopped = 0x118;
136 const int txt_screen0 = 0x119; //to 0x120
137 const int txt_screen1 = 0x121; //to 0x12B
138 const int txt_screen2 = 0x12C; //to 0x134
139 const int txt_screen3 = 0x135; //to 0x13C
140 const int txt_screen4 = 0x13D; //to 0x141
141 const int congrats = 0x142; //to 0x14A
142 const int lord_castle = 0x14B, dick_castle = 0x14C;
143 const int bg_fellow = 0x14D; //to 0x14F
144 const int my_leige = 0x150, yo_homes = 0x151;
145 const int all_we0 = 0x152; //to 0x153
146 const int and_a0 = 0x154; //to 0x155
147 const int indeed = 0x156; //to 0x157
148 const int iree = 0x158;
149 const int stand_back = 0x159;
150 const int jump_back = 0x15A;
151 const int batlin = 0x15B; //to 0x15C
152 const int you_shall = 0x15D; //to 0x15E
153 const int there_i = 0x15F; //to 0x160
154 const int batlin2 = 0x161; //to 0x162
155 const int you_must = 0x163; //to 0x164
156 const int soon_i = 0x165; //to 0x166
157 const int tis_my = 0x167; //to 0x169
158 const int balance = 0x16A; //to 0x16B
159 const int si_earth = 0x16C; //to 0x16D
160 const int dupre = 0x16E; //to 0x16F
161 const int goodbye = 0x170; //to 0x171
162 const int well_well = 0x172; //to 0x173
163 const int balance2 = 0x174; //to 0x176
164 const int poised = 0x177; //to 0x179
165 const int brit_earth = 0x17A; //to 0x17B
166 const int pagan = 0x17C; //to 0x17E
167 
168 //	Misc. text (frames, etc.) start at 0x500 in text.flx.
169 const int misc_name0 = 0x500;
170 
171 #endif
172 
173 
174 
175 
176 
177