1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef ULTIMA_ULTIMA1_CORE_RESOURCES_H
24 #define ULTIMA_ULTIMA1_CORE_RESOURCES_H
25 
26 #include "ultima/shared/engine/resources.h"
27 
28 namespace Ultima {
29 namespace Ultima1 {
30 
31 #define LOCATION_COUNT 84
32 
33 class GameResources : public Shared::LocalResourceFile {
34 protected:
35 	/**
36 	 * Synchronize resource data
37 	 */
38 	void synchronize() override;
39 public:
40 	const char *TITLE_MESSAGES[13];
41 	const char *MAIN_MENU_TEXT[7];
42 	const char *CHAR_GEN_TEXT[14];
43 	const char *RACE_NAMES[4];
44 	const char *SEX_NAMES[3];
45 	const char *CLASS_NAMES[4];
46 	const char *TRANSPORT_NAMES[10];
47 	const char *STAT_NAMES[10];
48 	const char *STATUS_TEXT[4];
49 	const char *DIRECTION_NAMES[4];
50 	const char *DUNGEON_MOVES[4];
51 	const char *LOCATION_NAMES[LOCATION_COUNT];
52 	byte LOCATION_X[LOCATION_COUNT];
53 	byte LOCATION_Y[LOCATION_COUNT];
54 	int LOCATION_PEOPLE[150][4];
55 	byte DUNGEON_DRAW_DATA[1964];
56 	const char *DUNGEON_ITEM_NAMES[2];
57 	const char *WEAPON_NAMES_UPPERCASE[16];
58 	const char *WEAPON_NAMES_LOWERCASE[16];
59 	const char *WEAPON_NAMES_ARTICLE[16];
60 	byte WEAPON_DISTANCES[16];
61 	const char *ARMOR_NAMES[6];
62 	const char *ARMOR_NAMES_ARTICLE[6];
63 	const char *SPELL_NAMES[11];
64 	const char *SPELL_PHRASES[14];
65 	const char *GEM_NAMES[4];
66 	byte OVERWORLD_MONSTER_DAMAGE[15];
67 	const char *OVERWORLD_MONSTER_NAMES[15];
68 	const char *DUNGEON_MONSTER_NAMES[99];
69 	const char *LAND_NAMES[4];
70 	const char *BLOCKED;
71 	const char *ENTERING;
72 	const char *THE_CITY_OF;
73 	const char *DUNGEON_LEVEL;
74 	const char *ATTACKED_BY;
75 	const char *ARMOR_DESTROYED;
76 	const char *GREMLIN_STOLE;
77 	const char *MENTAL_ATTACK;
78 	const char *MISSED;
79 	const char *KILLED;
80 	const char *DESTROYED;
81 	const char *THIEF_STOLE;
82 	const char *A, *AN;
83 	const char *HIT;
84 	const char *HIT_CREATURE;
85 	const char *ATTACKS;
86 	const char *DAMAGE;
87 	const char *BARD_SPEECH1;
88 	const char *BARD_SPEECH2;
89 	const char *JESTER_SPEECH1;
90 	const char *JESTER_SPEECH2;
91 	const char *FOUND_KEY;
92 	const char *BARD_STOLEN;
93 	const char *JESTER_STOLEN;
94 	const char *YOU_ARE_AT_SEA;
95 	const char *YOU_ARE_IN_WOODS;
96 	const char *YOU_ARE_IN_LANDS;
97 	const char *FIND;
98 	const char *A_SECRET_DOOR;
99 	const char *GAIN_HIT_POINTS;
100 	const char *OPENED;
101 
102 	const char *ACTION_NAMES[26];
103 	const char *HUH;
104 	const char *WHAT;
105 	const char *FACE_THE_LADDER;
106 	const char *CAUGHT;
107 	const char *NONE_WILL_TALK;
108 	const char *NOT_BY_COUNTER;
109 	const char *BUY_SELL;
110 	const char *BUY;
111 	const char *SELL;
112 	const char *NOTHING;
113 	const char *NONE;
114 	const char *NOTHING_HERE;
115 	const char *NONE_HERE;
116 	const char *SOLD;
117 	const char *CANT_AFFORD;
118 	const char *DONE;
119 	const char *DROP_PENCE_WEAPON_armour;
120 	const char *DROP_PENCE;
121 	const char *DROP_WEAPON;
122 	const char *DROP_armour;
123 	const char *NOT_THAT_MUCH;
124 	const char *OK;
125 	const char *SHAZAM;
126 	const char *ALAKAZOT;
127 	const char *NO_KINGS_PERMISSION;
128 	const char *SET_OFF_TRAP;
129 	const char *THOU_DOST_FIND;
130 	const char *NO_KEY;
131 	const char *INCORRECT_KEY;
132 	const char *DOOR_IS_OPEN;
133 	const char *CANT_LEAVE_IT_HERE;
134 	const char *INVENTORY;
135 	const char *PLAYER;
136 	const char *PLAYER_DESC;
137 	const char *PRESS_SPACE_TO_CONTINUE;
138 	const char *MORE;
139 	const char *READY_WEAPON_armour_SPELL;
140 	const char *WEAPON_armour_SPELL[3];
141 	const char *TRANSPORT_WEAPONS[2];
142 	const char *NO_EFFECT;
143 	const char *USED_UP_SPELL;
144 	const char *DUNGEON_SPELL_ONLY;
145 	const char *MONSTER_REMOVED;
146 	const char *FAILED;
147 	const char *TELEPORTED;
148 	const char *FIELD_CREATED;
149 	const char *FIELD_DESTROYED;
150 	const char *LADDER_CREATED;
151 	const char *QUEST_COMPLETED;
152 	const char *EXIT_CRAFT_FIRST;
153 	const char *NOTHING_TO_BOARD;
154 	const char *CANNOT_OPERATE;
155 
156 	const char *GROCERY_NAMES[8];
157 	const char *GROCERY_SELL;
158 	const char *GROCERY_PACKS1;
159 	const char *GROCERY_PACKS2;
160 	const char *GROCERY_PACKS3;
161 	const char *GROCERY_PACKS_FOOD;
162 	const char *GROCERY_FIND_PACKS;
163 	const char *WEAPONRY_NAMES[8];
164 	const char *NO_WEAPONRY_TO_SELL;
165 	const char *ARMOURY_NAMES[8];
166 	const char *NO_ARMOUR_TO_SELL;
167 	const char *MAGIC_NAMES[8];
168 	const char *DONT_BUY_SPELLS;
169 	const char *TAVERN_NAMES[8];
170 	const char *TAVERN_TEXT[4];
171 	const char *TAVERN_TIPS[13];
172 	const char *TRANSPORTS_NAMES[8];
173 	const char *TRANSPORTS_TEXT[2];
174 	const char *WITH_KING;
175 	const char *HE_IS_NOT_HERE;
176 	const char *HE_REJECTS_OFFER;
177 	const char *KING_TEXT[12];
178 
179 public:
180 	GameResources();
181 	GameResources(Shared::Resources *resManager);
182 };
183 
184 } // End of namespace Ultima1
185 } // End of namespace Ultima
186 
187 #endif
188