22 #ifndef MADS_CORE_ROOM_H 23 #define MADS_CORE_ROOM_H 25 #include "common/stream.h" 26 #include "mads/core/general.h" 27 #include "mads/core/vocab.h" 28 #include "mads/core/color.h" 29 #include "mads/core/image.h" 30 #include "mads/core/loader.h" 31 #include "mads/core/tile.h" 35 #define room_file_version "4.01" 36 #define pict_file_version "4.01" 41 #define ROOM_LOAD_TRANSLATE 0x0001 42 #define ROOM_LOAD_HARD_SHADOW 0x0010 44 #define ROOM_MAX_VARIANTS 10 45 #define ROOM_MAX_HOTSPOTS 40 46 #define ROOM_MAX_RAILS 20 48 #define ROOM_MAX_SERIES 10 49 #define ROOM_MAX_IMAGES 50 51 #define ROOM_FORMAT_NORMAL 1 52 #define ROOM_FORMAT_PANNING 2 54 #define ROOM_PICTURE 0 57 #define ROOM_SPECIAL 3 59 #define ROOM_DEFAULT_ATTRIBUTE 0x0f 61 #define LEGALITY_MASK 0xc000 62 #define WEIGHT_MASK 0x3fff 65 #define ILLEGAL 0x4000 66 #define TOTALLY_ILLEGAL 0x0000 68 #define WALK_DIRECT -1 71 #define WALK_DIRECT_2 -3 73 #define artwork_file series_name[ROOM_MAX_SERIES-1] 79 int ul_x, ul_y, lr_x, lr_y;
85 char vocab[VC_MAXWORDLEN + 1];
86 char verb[VC_MAXWORDLEN + 1];
95 int16 ul_x, ul_y, lr_x, lr_y;
106 static constexpr
size_t SIZE = 6 * 2 + (5 * 1) + 1 + 2 + 2;
117 word weight[ROOM_MAX_RAILS + 2];
119 static constexpr
size_t SIZE = 2 + 2 + 2 * (ROOM_MAX_RAILS + 2);
134 static constexpr
int SIZE = 2 + 2 + ColorList::SIZE + CycleList::SIZE;
151 char variant_desc[ROOM_MAX_VARIANTS][64];
155 char series_name[ROOM_MAX_SERIES][64];
156 Image image_list[ROOM_MAX_IMAGES];
170 char picture_base[80];
178 int front_scale, back_scale;
183 Rail rail[ROOM_MAX_RAILS + 2];
189 char picture_base[80];
194 uint16 front_y, back_y;
195 uint16 front_scale, back_scale;
196 uint16 depth_table[16];
197 Rail rail[ROOM_MAX_RAILS];
201 static constexpr
size_t SIZE = 80 + (2 * 10) + 2 + 2 + 2 + (2 + 2) + (2 + 2) + 2 * 16 +
202 (Rail::SIZE * ROOM_MAX_RAILS) + ShadowList::SIZE;
219 int16 front_y, back_y;
220 int16 front_scale, back_scale;
221 uint16 depth_table[16];
224 int16 variant_loaded;
233 extern int room_load_error;
235 extern byte room_loaded_depth;
236 extern byte room_loaded_walk;
237 extern byte room_loaded_special;
243 extern int room_read_def(
int room_code,
char *room_file,
char *picture_base,
int mads_mode);
244 extern int room_write_def(
int room_code,
const char *room_file,
int mads_mode);
245 extern RoomPtr room_load(
int id,
int variant,
const char *base_path,
249 int picture_ems_handle,
int depth_ems_handle,
int load_flags);
256 extern int room_load_variant(
int id,
int variant,
const char *base_path, RoomPtr room,
261 extern HotPtr room_load_hotspots(
int id,
int *num_spots);
268 extern int room_read_pict(
int room_code,
const char *room_file,
int mads_mode);
269 extern int room_write_pict(
int room_code,
const char *room_file,
int mads_mode);
270 extern void room_file_name(
char *target,
const char *suffix,
int code,
271 char *main_name,
int mads_mode);
272 extern void room_himem_preload(
int room,
int level);
273 extern RoomPtr room_dummy_init(
int xs,
int ys);
274 extern int room_picture_load(
int room_id,
Buffer *picture,
int load_flags);
275 extern void room_resolve_base(
char *base,
char *file,
int id,
const char *base_path);
276 extern int room_invert();
278 extern void init_room();
Definition: anim_timer.h:27
Definition: movie_decoder.h:32