22#ifndef MADS_CORE_PLAYER_H
23#define MADS_CORE_PLAYER_H
25#include "common/serializer.h"
26#include "mads/core/general.h"
30#define player_verb player2.words[0]
31#define player_main_noun player2.words[1]
32#define player_second_noun player2.words[2]
34#define PLAYER_VERTICAL 1
35#define PLAYER_DIAGONAL 2
36#define PLAYER_HORIZONTAL 3
38#define PLAYER_DIAGONAL_THRESHOLD 141
40#define PLAYER_MAX_ROOMS 120
42#define PLAYER_MAX_STOP 12
47 int target_x, target_y;
50 int x_counter, y_counter;
55 int center_of_gravity;
61 int walk_off_edge_to_room;
67 int prepare_walk_facing;
71 bool commands_allowed;
73 bool walker_previously_visible;
85 int stop_walker_sequence;
86 int stop_walker_stack[PLAYER_MAX_STOP];
87 int stop_walker_trigger[PLAYER_MAX_STOP];
88 int stop_walker_pointer;
93 int next_special_code;
109 int main_object_source;
110 int second_object_source;
117 char series_name[20];
123 byte been_here_before;
124 int num_rooms_been_in;
125 int rooms_been_in[PLAYER_MAX_ROOMS];
128 byte walker_loads_first;
129 byte walker_loaded_first;
130 byte walker_is_loaded;
131 byte walker_must_reload;
133 bool walker_been_visible;
138 byte walk_trigger_dest;
139 int walk_trigger_words[3];
141 bool enable_at_target;
157extern const byte player_clockwise[10];
161#define player_said_1(aa) (player_parse (words_##aa , 0) )
162#define player_said_2(aa, bb) (player_parse (words_##aa, words_##bb, 0) )
163#define player_said_3(aa, bb, cc) (player_parse (words_##aa, words_##bb, words_##cc, 0) )
165extern void init_player();
170extern void player_new_stop_walker();
176extern void player_stationary_update();
184extern void player_set_facing();
190extern void player_set_final_facing();
196extern void player_select_series();
201extern void player_set_sprite();
207extern void player_keep_walking();
212extern int player_search_image();
217extern void player_set_image();
222extern int player_load_series(
const char *name);
227extern void player_himem_preload(
const char *name,
int level);
229extern void player_dump_walker();
230extern void player_preserve_palette();
239extern void player_new_command();
245extern void player_new_walk();
251extern int player_parse(
int vocab_word, ...);
256extern void player_cancel_walk();
262extern void player_cancel_command();
267extern int player_has_been_in_room(
int id);
273extern void player_discover_room(
int id);
279extern void player_undiscover_room();
291extern int player_has(
int object_id);
296extern void player_clear_stop_walkers();
301extern void player_init();
307extern void player_start_walking(
int walk_x,
int walk_y,
int walk_facing);
312extern int player_add_stop_walker(
int walker,
int trigger);
320extern void player_walk(
int x,
int y,
int facing);
322extern void player_walk_trigger(
int trigger);
327extern void player_demand_facing(
int facing);
329extern void player_demand_location(
int x,
int y);
338extern void player_first_walk(
int from_x,
int from_y,
int from_facing,
339 int to_x,
int to_y,
int to_facing,
int enable_at_target);
346extern void player_keep_turning();
348extern void player_activate_trigger();
353extern void save_player();
358extern void restore_player();
Definition: serializer.h:80