[go: up one dir, main page]

Menu

[r89]: / engine / library.hpp  Maximize  Restore  History

Download this file

289 lines (263 with data), 10.0 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
//
// VRM_IN.HPP - Internal version of vrm.hpp
//
#ifndef IRE_NATIVE_EXECUTION_MODULE_HEADER_FILE
#define IRE_NATIVE_EXECUTION_MODULE_HEADER_FILE
#include "core.hpp"
typedef char *STRING;
#ifndef NULL
#define NULL 0L
#endif
/////// Virtual Runnable Module subroutines ////////
#define AND &&
#define OR ||
#define NOT !
extern void print(char *msg, ...);
extern void printF(char *msg, ...);
extern void vrmclear();
extern void printxy(int x,int y,char *msg, ...);
extern void TextColor(int r,int g, int b);
extern OBJECT *create_object(STRING name, int x, int y);
extern void delete_pending(void);
extern void remove_object(OBJECT *obj);
extern void change_object(OBJECT *obj, STRING name);
extern void replace_object(OBJECT *obj, STRING name);
extern void set_object_direction(OBJECT *obj, int dir);
extern void set_object_sequence(OBJECT *obj, STRING name);
extern void set_object_behaviour(OBJECT *obj, STRING name);
extern void add_goal(OBJECT *o, int priority, char *vrm, OBJECT *target);
extern void end_goal(OBJECT *o);
extern void wipe_goals(OBJECT *o);
extern void kill_goals(OBJECT *o,int p);
#define set_object_behavior set_object_behaviour
extern void spill_contents(OBJECT *bag);
extern void spill_contents_at(OBJECT *bag,int x,int y);
extern int get_flag(OBJECT *target, VMUINT flag);
extern int get_tileflag(TILE *target, VMUINT flag);
extern void set_flag(OBJECT *target, VMUINT flag, int state);
extern void default_flag(OBJECT *target, VMUINT flag);
extern void add_quantity(OBJECT *container, char *objecttype, int quantity);
extern int take_quantity(OBJECT *container, char *objecttype, int quantity);
extern int move_quantity(OBJECT *src, OBJECT *dest, char *objecttype, int quantity);
extern int count_objects(OBJECT *container, char *objecttype);
extern OBJECT *find_object_with_tag(int a, char *name);
extern OBJECT *find_container(OBJECT *ex);
extern int get_pflag(OBJECT *target, VMUINT flag);
extern void set_pflag(OBJECT *target, VMUINT flag, int state);
extern int get_user_flag(char *flag);
extern void set_user_flag(char *flag, int state);
extern int get_local(OBJECT *pl,OBJECT *ch,char *flag);
extern void set_local(OBJECT *pl,OBJECT *ch,char *flag, int state);
extern void show_object(OBJECT *z,int x,int y);
extern void call_vrm(char *name);
extern void call_vrm_number(int name);
extern char *get_vrm_name(int num);
extern void play_song(char *song);
extern void play_sound(char *sound);
extern void object_sound(char *sound, OBJECT *o);
extern void start_song();
extern void stop_song();
extern int object_is_called(OBJECT *obj,char *str);
extern int rnd(int max);
extern void waitfor(unsigned millisec);
extern void waitredraw(unsigned ms);
extern int get_number(int no);
extern TILE *get_tile(int x,int y);
extern OBJECT *get_object(int x,int y);
extern OBJECT *get_solid_object(int x,int y);
extern OBJECT *get_first_object(int x,int y);
extern OBJECT *get_object_below(OBJECT *o);
extern OBJECT *search_container(OBJECT *pocket, char *name);
extern int count_active_objects();
extern void find_objects_with_tag(VMINT a, char *name, VMINT *num, OBJECT **list);
extern void move_to_pocket(OBJECT *src,OBJECT *dest);
extern void transfer_to_pocket(OBJECT *src,OBJECT *dest);
extern int force_from_pocket(OBJECT *obj,OBJECT *container,int x,int y);
extern int move_from_pocket(OBJECT *obj,OBJECT *container,int x,int y);
extern void move_to_top(OBJECT *obj);
extern void move_to_floor(OBJECT *obj);
extern int weigh_object(OBJECT *obj);
extern int get_bulk(OBJECT *obj);
extern int is_tile_solid(int x,int y);
extern int is_tile_water(int x,int y);
extern int is_solid(int x,int y);
extern int in_pocket(OBJECT *o);
extern int move_object(OBJECT *src,int x,int y);
extern void transfer_object(OBJECT *src,int x,int y);
extern int line_of_sight(int xa, int ya, int xb, int yb);
extern int move_forward(OBJECT *a);
extern int move_backward(OBJECT *a);
extern int turn_l(OBJECT *a);
extern int turn_r(OBJECT *a);
extern void wait_for_animation(OBJECT *a);
extern int move_towards(OBJECT *object, OBJECT *end);
extern int move_towards_4(OBJECT *object, OBJECT *end);
extern int move_towards_8(OBJECT *object, OBJECT *end);
extern int move_thick(OBJECT *object, OBJECT *end);
//extern int add_to_party(OBJECT *new_member);
extern void remove_from_party(OBJECT *member);
extern int choose_member(OBJECT *member, char *player);
extern int choose_leader(OBJECT *leader, char *player, char *others);
extern void move_party_from_object(OBJECT *o, int x, int y);
extern void move_party_to_object(OBJECT *o);
extern void set_darkness(int level);
extern void redraw();
extern void restart();
extern void get_input();
extern int talk_to(char *speechfile,char *startpage);
extern void check_hurt(OBJECT *list);
extern void redraw_map();
extern int get_yn(char *question);
extern void ___lightning(int ticks);
extern void scroll_tile(char *name, int x, int y);
extern void scroll_tile_number(int no, int x, int y);
extern void vrmfade_in();
extern void vrmfade_out();
extern void check_time();
extern OBJECT *find_nearest(OBJECT *o, char *type);
extern OBJECT *find_pathmarker(OBJECT *o, char *name);
extern OBJECT *find_neartag(OBJECT *o, char *type, int tag);
extern char *best_name(OBJECT *o);
extern int character_onscreen(char *pname);
extern int object_onscreen(OBJECT *a);
extern void resume_schedule(OBJECT *o);
extern void resync_everything();
extern void check_object(OBJECT *o, char *label);
extern void set_light(int x, int y, int x2, int y2, int light);
extern void draw_fatline(BITMAP *dest, int x, int y, int radius);
extern void CalcOrbit(VMINT *angle, VMINT radius, VMINT drift, VMINT speed, VMINT *x, VMINT *y, VMINT ox, VMINT oy);
extern void InitOrbit();
//extern void ProjectCorona(int x,int y,int w,int h, int intensity, int falloff);
extern void ProjectCorona(VMINT x,VMINT y,VMINT radius, VMINT intensity, VMINT falloff, VMINT tint);
#define hurt_object(x,y) {x->stats->hp-=y; check_hurt(x);}
#define UP 0
#define DOWN 1
#define LEFT 2
#define RIGHT 3
#define CHAR_U 0
#define CHAR_D 1
#define CHAR_L 2
#define CHAR_R 3
#ifndef ALLEGRO_H
#define KEY_A 1
#define KEY_B 2
#define KEY_C 3
#define KEY_D 4
#define KEY_E 5
#define KEY_F 6
#define KEY_G 7
#define KEY_H 8
#define KEY_I 9
#define KEY_J 10
#define KEY_K 11
#define KEY_L 12
#define KEY_M 13
#define KEY_N 14
#define KEY_O 15
#define KEY_P 16
#define KEY_Q 17
#define KEY_R 18
#define KEY_S 19
#define KEY_T 20
#define KEY_U 21
#define KEY_V 22
#define KEY_W 23
#define KEY_X 24
#define KEY_Y 25
#define KEY_Z 26
#define KEY_0 27
#define KEY_1 28
#define KEY_2 29
#define KEY_3 30
#define KEY_4 31
#define KEY_5 32
#define KEY_6 33
#define KEY_7 34
#define KEY_8 35
#define KEY_9 36
#define KEY_0_PAD 37
#define KEY_1_PAD 38
#define KEY_2_PAD 39
#define KEY_3_PAD 40
#define KEY_4_PAD 41
#define KEY_5_PAD 42
#define KEY_6_PAD 43
#define KEY_7_PAD 44
#define KEY_8_PAD 45
#define KEY_9_PAD 46
#define KEY_F1 47
#define KEY_F2 48
#define KEY_F3 49
#define KEY_F4 50
#define KEY_F5 51
#define KEY_F6 52
#define KEY_F7 53
#define KEY_F8 54
#define KEY_F9 55
#define KEY_F10 56
#define KEY_F11 57
#define KEY_F12 58
#define KEY_ESC 59
#define KEY_TILDE 60
#define KEY_MINUS 61
#define KEY_EQUALS 62
#define KEY_BACKSPACE 63
#define KEY_TAB 64
#define KEY_OPENBRACE 65
#define KEY_CLOSEBRACE 66
#define KEY_ENTER 67
#define KEY_COLON 68
#define KEY_QUOTE 69
#define KEY_BACKSLASH 70
#define KEY_BACKSLASH2 71
#define KEY_COMMA 72
#define KEY_STOP 73
#define KEY_DOT 73
#define KEY_SLASH 74
#define KEY_SPACE 75
#define KEY_INSERT 76
#define KEY_DEL 77
#define KEY_HOME 78
#define KEY_END 79
#define KEY_PGUP 80
#define KEY_PGDN 81
#define KEY_LEFT 82
#define KEY_RIGHT 83
#define KEY_UP 84
#define KEY_DOWN 85
#define KEY_SLASH_PAD 86
#define KEY_ASTERISK 87
#define KEY_MINUS_PAD 88
#define KEY_PLUS_PAD 89
#define KEY_DEL_PAD 90
#define KEY_ENTER_PAD 91
#define KEY_PRTSCR 92
#define KEY_PAUSE 93
#define KEY_YEN 94
#define KEY_YEN2 95
#define KEY_MODIFIERS 96
#define KEY_LSHIFT 96
#define KEY_RSHIFT 97
#define KEY_LCONTROL 98
#define KEY_RCONTROL 99
#define KEY_ALT 100
#define KEY_ALTGR 101
#define KEY_LWIN 102
#define KEY_RWIN 103
#define KEY_MENU 104
#define KEY_SCRLOCK 105
#define KEY_NUMLOCK 106
#define KEY_CAPSLOCK 107
#endif
#define MAX_MEMBERS 128
// Tint bitmasks
#define TINT_RED 1
#define TINT_GREEN 2
#define TINT_BLUE 4
#define TINT_YELLOW 3
#define TINT_PURPLE 5
#define TINT_MAGENTA 5
#define TINT_CYAN 6
#define TINT_LIGHTBLUE 6
#define TINT_WHITE 7
#endif