AERMRE 1.5.1
AER modding framework for Hyper Light Drifter.
object.h
Go to the documentation of this file.
1
84#ifndef AER_OBJECT_H
85#define AER_OBJECT_H
86
87#include <stdbool.h>
88#include <stddef.h>
89#include <stdint.h>
90
91#include "aer/event.h"
92#include "aer/instance.h"
93
94/* ----- PUBLIC TYPES ----- */
95
101typedef enum AERObjectIndex {
107 AER_OBJECT_MASTERCLASS = 0x0,
108 AER_OBJECT_DOORSTOVISIT = 0x1,
109 AER_OBJECT_PAUSEDELAYOBJ = 0x2,
116 AER_OBJECT_BACKGROUND = 0x4,
117 AER_OBJECT_STUCKBOX = 0x5,
118 AER_OBJECT_BATTERYCHARGER = 0x6,
119 AER_OBJECT_BG = 0x7,
120 AER_OBJECT_BGSCENERY = 0x8,
121 AER_OBJECT_BULLET = 0x9,
122 AER_OBJECT_BURSTSHOT = 0xa,
123 AER_OBJECT_CONFIRMWINDOW = 0xb,
124 AER_OBJECT_DATA = 0xc,
125 AER_OBJECT_DECOR = 0xd,
126 AER_OBJECT_DECORSHADOW = 0xe,
127 AER_OBJECT_DECORXRAYBLOCK = 0xf,
128 AER_OBJECT_DECORXRAYSHADOWBLOCK = 0x10,
135 AER_OBJECT_ENEMYHITMASK = 0x12,
136 AER_OBJECT_FOREGROUND = 0x13,
137 AER_OBJECT_GAMEEXITER = 0x14,
138 AER_OBJECT_HAZARD = 0x15,
139 AER_OBJECT_JUMPLEDGE = 0x16,
140 AER_OBJECT_LIBRARY = 0x17,
141 AER_OBJECT_MANTLEABLE = 0x18,
142 AER_OBJECT_MOVINGBLOCK = 0x19,
143 AER_OBJECT_MUSIC = 0x1a,
144 AER_OBJECT_OBJWINDOW = 0x1b,
145 AER_OBJECT_PARTICLE = 0x1c,
151 AER_OBJECT_PROJECTILEBLOCKCOLLIDER = 0x1e,
152 AER_OBJECT_SCENERY = 0x1f,
153 AER_OBJECT_SCREEN = 0x20,
154 AER_OBJECT_SIMPLEEFFECT = 0x21,
155 AER_OBJECT_SIMPLEEFFECTGUI = 0x22,
156 AER_OBJECT_STATESCENERY = 0x23,
157 AER_OBJECT_RECESSINGSCENERY = 0x24,
158 AER_OBJECT_TIMELIMIT = 0x25,
159 AER_OBJECT_MENUS = 0x26,
160 AER_OBJECT_CREDITS = 0x27,
161 AER_OBJECT_TITLEHLD = 0x28,
162 AER_OBJECT_PAXCHALLENGERESULTS = 0x29,
163 AER_OBJECT_THANKYOUSCREEN = 0x2a,
164 AER_OBJECT_TITLESCREEN = 0x2b,
165 AER_OBJECT_WAITER = 0x2c,
166 AER_OBJECT_BOSSRUSHLEADERBOARDSAVER = 0x2d,
167 AER_OBJECT_EDITOROBJ = 0x2e,
168 AER_OBJECT_SPAWNER = 0x2f,
169 AER_OBJECT_LEVELBOUNDARY = 0x30,
170 AER_OBJECT_FOLDER_EDITOROBJS = 0x31,
171 AER_OBJECT_HOARDE = 0x32,
172 AER_OBJECT_CHARMAKER = 0x33,
173 AER_OBJECT_CHARVICTORY = 0x34,
174 AER_OBJECT_NEWREGIONSOUNDEVENT = 0x35,
175 AER_OBJECT_ALLHOARDESBEATEN = 0x36,
176 AER_OBJECT_BONUSHOARDEBEATEN = 0x37,
183 AER_OBJECT_TITLEDOOR = 0x39,
184 AER_OBJECT_EDITORCHECKPOINT = 0x3a,
191 AER_OBJECT_REGIONWALL = 0x3c,
192 AER_OBJECT_BOSSWALL = 0x3d,
193 AER_OBJECT_BOOMBOX = 0x3e,
194 AER_OBJECT_AMBIENCE = 0x3f,
195 AER_OBJECT_CAMERACUE = 0x40,
196 AER_OBJECT_CAMERALOCK = 0x41,
197 AER_OBJECT_CASERESETTER = 0x42,
198 AER_OBJECT_EMPTYOBJECT = 0x43,
199 AER_OBJECT_TRUEATINTERVAL = 0x44,
200 AER_OBJECT_PERMASTATE = 0x45,
201 AER_OBJECT_COLLECTIBLECHECK = 0x46,
202 AER_OBJECT_PLAYERHASMAPCHECK = 0x47,
203 AER_OBJECT_WELLCHECK = 0x48,
204 AER_OBJECT_ROOMVISITED = 0x49,
205 AER_OBJECT_BOSSCHECK = 0x4a,
206 AER_OBJECT_ONETIMETRUE = 0x4b,
207 AER_OBJECT_PARALLAXOBJ = 0x4c,
208 AER_OBJECT_NOCOMBAT = 0x4d,
209 AER_OBJECT_NOSHOOT = 0x4e,
210 AER_OBJECT_NOWARP = 0x4f,
211 AER_OBJECT_EDITORBLOOMER = 0x50,
212 AER_OBJECT_EDITORSCREENSHAKE = 0x51,
213 AER_OBJECT_EDITORSOUND = 0x52,
214 AER_OBJECT_EDITORCUTSCENE = 0x53,
215 AER_OBJECT_TUTORIALBUTTONPROMPT = 0x54,
216 AER_OBJECT_TUTORIALINFINITESLIME = 0x55,
217 AER_OBJECT_EDITORWAYPOINT = 0x56,
218 AER_OBJECT_NOTE = 0x57,
219 AER_OBJECT_SPECIALWAYPOINT = 0x58,
220 AER_OBJECT_DRIFTERDEATH = 0x59,
221 AER_OBJECT_GLOWINGEYES = 0x5a,
222 AER_OBJECT_BLOODSPRAYER = 0x5b,
223 AER_OBJECT_ENEMYHPCHECKER = 0x5c,
224 AER_OBJECT_BOSSRUSH = 0x5d,
225 AER_OBJECT_BOSSRUSHCHECKPOINT = 0x5e,
226 AER_OBJECT_BOSSRUSHBOSSCHECK = 0x5f,
227 AER_OBJECT_FOLDER_ENDE = 0x60,
228 AER_OBJECT_AMBIENTSOUND = 0x61,
229 AER_OBJECT_GAUNTLETDOOR = 0x62,
230 AER_OBJECT_CRISSCROSS = 0x63,
231 AER_OBJECT_OVERTRIGGER = 0x64,
232 AER_OBJECT_UNDERTRIGGER = 0x65,
233 AER_OBJECT_DOORBOTTOM = 0x66,
234 AER_OBJECT_GRASS = 0x67,
235 AER_OBJECT_HALSPAWNER = 0x68,
236 AER_OBJECT_MIDDOOR = 0x69,
237 AER_OBJECT_PUDDLE = 0x6a,
242 AER_OBJECT_PHASECRYSTALMAKER = 0x6c,
243 AER_OBJECT_CRYSTALDESTRUCTABLE = 0x6d,
244 AER_OBJECT_MULTIHITCRYSTAL = 0x6e,
245 AER_OBJECT_ORGANTUBETINY = 0x6f,
246 AER_OBJECT_ORGANTUBETHIN = 0x70,
247 AER_OBJECT_ORGANTUBESMALL = 0x71,
248 AER_OBJECT_COLLECTIBLE = 0x72,
249 AER_OBJECT_COLLECTIBLECOLUMN = 0x73,
250 AER_OBJECT_FOLDER_ITEMS = 0x74,
251 AER_OBJECT_CRATE = 0x75,
252 AER_OBJECT_CRATEBIG = 0x76,
253 AER_OBJECT_MULTIHITCRATE = 0x77,
254 AER_OBJECT_BARREL = 0x78,
255 AER_OBJECT_EXPLODINGBARREL = 0x79,
256 AER_OBJECT_GEARBITCRATE = 0x7a,
257 AER_OBJECT_GEARBIT = 0x7b,
258 AER_OBJECT_MAP = 0x7c,
259 AER_OBJECT_HEALTHKIT = 0x7d,
260 AER_OBJECT_DRIFTERBONES_KEY = 0x7e,
261 AER_OBJECT_DRIFTERBONES_WEAPON = 0x7f,
262 AER_OBJECT_DRIFTERBONES_OUTFIT = 0x80,
263 AER_OBJECT_MODULESOCKET = 0x81,
264 AER_OBJECT_LIBRARIANTABLET = 0x82,
265 AER_OBJECT_LIBRARYCASE = 0x83,
266 AER_OBJECT_LIBRARYWALL = 0x84,
267 AER_OBJECT_LIBRARYWALLFINAL = 0x85,
268 AER_OBJECT_FOLDER_ENDD = 0x86,
269 AER_OBJECT_DRIFTERBONES = 0x87,
270 AER_OBJECT_BATTERYREFILLER = 0x88,
271 AER_OBJECT_HEALTHPLANT = 0x89,
272 AER_OBJECT_FOLDER_ENVIRO = 0x8a,
273 AER_OBJECT_BUTTON = 0x8b,
274 AER_OBJECT_BOSSRUSHLEADERBOARD = 0x8c,
275 AER_OBJECT_HIGHSCOREBOARD = 0x8d,
276 AER_OBJECT_SMALLHIGHSCOREBOARD = 0x8e,
277 AER_OBJECT_TOGGLESWITCH = 0x8f,
278 AER_OBJECT_RAILGUNSWITCH = 0x90,
279 AER_OBJECT_TERMINAL = 0x91,
280 AER_OBJECT_WARPPAD = 0x92,
281 AER_OBJECT_STAIRSRIGHT = 0x93,
282 AER_OBJECT_STAIRSLEFT = 0x94,
283 AER_OBJECT_SMALLSTAIRSRIGHT = 0x95,
284 AER_OBJECT_SMALLSTAIRSLEFT = 0x96,
285 AER_OBJECT_STAIRSUP = 0x97,
286 AER_OBJECT_SMALLSTAIRSUP = 0x98,
287 AER_OBJECT_JUMPPAD = 0x99,
288 AER_OBJECT_INVISIBLEPLATFORM = 0x9a,
289 AER_OBJECT_LIGHT = 0x9b,
290 AER_OBJECT_ROOMDOOR = 0x9c,
291 AER_OBJECT_DIAMONDDOOR = 0x9d,
292 AER_OBJECT_VANISHINGDOOR = 0x9e,
293 AER_OBJECT_TELEVATOR = 0x9f,
294 AER_OBJECT_BIGBOSSDOOR = 0xa0,
295 AER_OBJECT_DRIFTERVAULTDOOR = 0xa1,
296 AER_OBJECT_MODULEDOOR = 0xa2,
297 AER_OBJECT_SHORTWARP = 0xa3,
298 AER_OBJECT_TELEPORTER = 0xa4,
299 AER_OBJECT_UPGRADESWORD = 0xa5,
300 AER_OBJECT_UPGRADEDASH = 0xa6,
301 AER_OBJECT_UPGRADEHEALTHPACK = 0xa7,
302 AER_OBJECT_UPGRADESPECIAL = 0xa8,
303 AER_OBJECT_UPGRADEWEAPON = 0xa9,
304 AER_OBJECT_APARTMENTDIAGRAM = 0xaa,
305 AER_OBJECT_APARTMENTLIGHTSWITCH = 0xab,
306 AER_OBJECT_APARTMENTMIRROR = 0xac,
307 AER_OBJECT_CAPECHOOSER = 0xad,
308 AER_OBJECT_COMPANIONSHELLCHOOSER = 0xae,
309 AER_OBJECT_SWORDCHOOSER = 0xaf,
310 AER_OBJECT_STAMINARECHARGER = 0xb0,
311 AER_OBJECT_CHAINDASHSCOREBOARD = 0xb1,
312 AER_OBJECT_CHAINDASHSCOREBOARDPRO = 0xb2,
313 AER_OBJECT_WELLTOWER = 0xb3,
314 AER_OBJECT_WATERFLOOR = 0xb4,
315 AER_OBJECT_SNOWFLOOR = 0xb5,
316 AER_OBJECT_WATERFALLREGION = 0xb6,
317 AER_OBJECT_TITANHEART = 0xb7,
318 AER_OBJECT_TITANEYE = 0xb8,
319 AER_OBJECT_GOOCIRCLE = 0xb9,
320 AER_OBJECT_SOCCERBALL = 0xba,
321 AER_OBJECT_SOCCERSCOREBOARD = 0xbb,
322 AER_OBJECT_ABYSSDOOR = 0xbc,
323 AER_OBJECT_ABYSSDOORPILLAR = 0xbd,
324 AER_OBJECT_FOLDER_END3 = 0xbe,
325 AER_OBJECT_SNOWPILE = 0xbf,
326 AER_OBJECT_VINEBOTTOM = 0xc0,
327 AER_OBJECT_INTERACTIVEOBJ = 0xc1,
328 AER_OBJECT_SCENERYLIGHT = 0xc2,
329 AER_OBJECT_DOORINTERACTIVESYSTEM = 0xc3,
330 AER_OBJECT_SWITCHPARENT = 0xc4,
331 AER_OBJECT_FLOORBUTTON = 0xc5,
332 AER_OBJECT_SWITCHPILLAR = 0xc6,
333 AER_OBJECT_TIMEDSWITCHPILLAR = 0xc7,
334 AER_OBJECT_SLOWSWITCH = 0xc8,
335 AER_OBJECT_SPLITTINGDOOR = 0xc9,
336 AER_OBJECT_SINKINGDOOR = 0xca,
337 AER_OBJECT_TOWER = 0xcb,
338 AER_OBJECT_DANGER = 0xcc,
339 AER_OBJECT_ACIDPARENT = 0xcd,
340 AER_OBJECT_LASERHAZARD = 0xce,
341 AER_OBJECT_ACIDPOOL = 0xcf,
342 AER_OBJECT_ACIDPOOLSHRINK = 0xd0,
343 AER_OBJECT_FOLDER_HAZARDS = 0xd1,
344 AER_OBJECT_POPUPTURRET = 0xd2,
345 AER_OBJECT_CRUSHBLOCK = 0xd3,
346 AER_OBJECT_MOVINGPLATFORM = 0xd4,
347 AER_OBJECT_RISINGPLATFORM = 0xd5,
348 AER_OBJECT_DROPPLATFORM = 0xd6,
349 AER_OBJECT_SICKAREA = 0xd7,
350 AER_OBJECT_PHASEMINE = 0xd8,
351 AER_OBJECT_FLAMEPOLE = 0xd9,
352 AER_OBJECT_FLAMEVENT = 0xda,
353 AER_OBJECT_FLAMETHROWER = 0xdb,
354 AER_OBJECT_LINKMINE = 0xdc,
355 AER_OBJECT_FOLDER_ENDH = 0xdd,
356 AER_OBJECT_SINKINGPLATFORM = 0xde,
357 AER_OBJECT_SHALLOWPLATFORM = 0xdf,
358 AER_OBJECT_WARPBLOCKTRAP = 0xe0,
359 AER_OBJECT_TIMEPOLE = 0xe1,
360 AER_OBJECT_TURRET = 0xe2,
361 AER_OBJECT_TIMESLOWER = 0xe3,
362 AER_OBJECT_FLAMEJET = 0xe4,
363 AER_OBJECT_TURRETLASER = 0xe5,
364 AER_OBJECT_TURRETORB = 0xe6,
365 AER_OBJECT_PHASEDROPPLATFORM = 0xe7,
366 AER_OBJECT_MINE = 0xe8,
367 AER_OBJECT_OTTERBODY = 0xe9,
368 AER_OBJECT_ACIDLAKE = 0xea,
369 AER_OBJECT_PHASEPLATFORM = 0xeb,
370 AER_OBJECT_DESTRUCTOR = 0xec,
371 AER_OBJECT_ENEMYSHOUT = 0xed,
372 AER_OBJECT_OTHERCOMPANION = 0xee,
373 AER_OBJECT_ENEMYBOMB = 0xef,
374 AER_OBJECT_GOALBOMB = 0xf0,
375 AER_OBJECT_CULTCHARGE = 0xf1,
376 AER_OBJECT_ENEMYWEAPONCOL = 0xf2,
377 AER_OBJECT_CRYSTALSPIKE = 0xf3,
378 AER_OBJECT_TIMEPHASEBULLET = 0xf4,
379 AER_OBJECT_NINJASTAR = 0xf5,
380 AER_OBJECT_LASERSHOT = 0xf6,
381 AER_OBJECT_ENEMYSHOT = 0xf7,
382 AER_OBJECT_ROCKET = 0xf8,
383 AER_OBJECT_ENEMYBULLET = 0xf9,
384 AER_OBJECT_MAGICMISSILE = 0xfa,
385 AER_OBJECT_HALDRIFTER = 0xfb,
386 AER_OBJECT_DEADHALLUCINATION = 0xfc,
387 AER_OBJECT_HALDIRK = 0xfd,
388 AER_OBJECT_ENEMYPLOPPER = 0xfe,
389 AER_OBJECT_TESTENEMY = 0xff,
390 AER_OBJECT_PARRYPRINCE = 0x100,
391 AER_OBJECT_TANUKISPEAR = 0x101,
392 AER_OBJECT_CRYSTALSPIDER = 0x102,
393 AER_OBJECT_ALPHAWOLF = 0x103,
394 AER_OBJECT_NINJAFROG = 0x104,
395 AER_OBJECT_JARFROG = 0x105,
396 AER_OBJECT_STRIDER = 0x106,
397 AER_OBJECT_SWOOPNSPIT = 0x107,
398 AER_OBJECT_GARBAGEPLANT = 0x108,
399 AER_OBJECT_DROPBIRD = 0x109,
400 AER_OBJECT_DIVEBOMB = 0x10a,
401 AER_OBJECT_CRAB = 0x10b,
402 AER_OBJECT_CRABMAN = 0x10c,
403 AER_OBJECT_BURSTBIRD = 0x10d,
404 AER_OBJECT_SUMMONBLOCKBIRD = 0x10e,
405 AER_OBJECT_FOLDER_ENEMYG = 0x10f,
406 AER_OBJECT_DIRK = 0x110,
407 AER_OBJECT_RIFLEDIRK = 0x111,
408 AER_OBJECT_MISSILEDIRK = 0x112,
409 AER_OBJECT_SLIME = 0x113,
410 AER_OBJECT_LEAPER = 0x114,
411 AER_OBJECT_SPIDER = 0x115,
412 AER_OBJECT_DIRKOMMANDER = 0x116,
413 AER_OBJECT_PUNCHINGBAG = 0x117,
414 AER_OBJECT_WEAKPUNCHINGBAG = 0x118,
415 AER_OBJECT_REGPUNCHINGBAG = 0x119,
416 AER_OBJECT_FOLDER_ENEMYW = 0x11a,
417 AER_OBJECT_TANUKISWORD = 0x11b,
418 AER_OBJECT_TANUKIGUN = 0x11c,
419 AER_OBJECT_SMALLCRYSTALSPIDER = 0x11d,
420 AER_OBJECT_CRYSTALBABY = 0x11e,
421 AER_OBJECT_WOLF = 0x11f,
422 AER_OBJECT_FOLDER_ENEMYE = 0x120,
423 AER_OBJECT_NINJASTARFROG = 0x121,
424 AER_OBJECT_SPIRALBOMBFROG = 0x122,
425 AER_OBJECT_GRUMPSHROOM = 0x123,
426 AER_OBJECT_MELTY = 0x124,
427 AER_OBJECT_FOLDER_ENEMYN = 0x125,
428 AER_OBJECT_GHOSTBEAMBIRD = 0x126,
429 AER_OBJECT_CULTBIRD = 0x127,
430 AER_OBJECT_BIRDMAN = 0x128,
431 AER_OBJECT_FOLDER_ENEMYS = 0x129,
432 AER_OBJECT_SOUTHDRONE = 0x12a,
433 AER_OBJECT_ROBODOG = 0x12b,
434 AER_OBJECT_BLADIRK = 0x12c,
435 AER_OBJECT_FOLDER_END = 0x12d,
436 AER_OBJECT_FOLDER_BOSSES = 0x12e,
437 AER_OBJECT_HALBOSS = 0x12f,
438 AER_OBJECT_CLEANER = 0x130,
439 AER_OBJECT_OLDGENERAL = 0x131,
440 AER_OBJECT_JERKPOPE = 0x132,
441 AER_OBJECT_MARKSCYTHE = 0x133,
442 AER_OBJECT_BENNYARROW = 0x134,
443 AER_OBJECT_BULLETBAKER = 0x135,
444 AER_OBJECT_ALUCARDMODULESOCKET = 0x136,
445 AER_OBJECT_COUNTALUCARD = 0x137,
446 AER_OBJECT_TANUKICRYSTAL = 0x138,
447 AER_OBJECT_FOLDER_END5 = 0x139,
448 AER_OBJECT_GEARBITSPAWNER = 0x13a,
449 AER_OBJECT_HALEXPLOSION = 0x13b,
450 AER_OBJECT_HALARM = 0x13c,
451 AER_OBJECT_DIAMONDEYE = 0x13d,
452 AER_OBJECT_EMBERDIAMOND = 0x13e,
453 AER_OBJECT_EMBERARM = 0x13f,
454 AER_OBJECT_EMBERARMPIECE = 0x140,
455 AER_OBJECT_EMBERLASER = 0x141,
456 AER_OBJECT_GUNSLINGER = 0x142,
457 AER_OBJECT_CRYSTALQUEEN = 0x143,
458 AER_OBJECT_SPIDEREGG = 0x144,
459 AER_OBJECT_ALUCARDDRONE = 0x145,
460 AER_OBJECT_ARROWSTRIKE = 0x146,
461 AER_OBJECT_SCYTHE = 0x147,
462 AER_OBJECT_WARPTRAVELER = 0x148,
463 AER_OBJECT_DIAMONDSPIDER = 0x149,
464 AER_OBJECT_CRYSTALSPIKEMAKER = 0x14a,
465 AER_OBJECT_CRYSTALWALLMAKER = 0x14b,
466 AER_OBJECT_DIAMONDSPIDERLEG = 0x14c,
467 AER_OBJECT_BOSSGEARBITSPAWNER = 0x14d,
468 AER_OBJECT_BLOODPICKUP = 0x14e,
469 AER_OBJECT_COMPANIONSUIT = 0x14f,
470 AER_OBJECT_BETACAPEPICKUP = 0x150,
471 AER_OBJECT_POWERUP = 0x151,
472 AER_OBJECT_POWDRONE = 0x152,
473 AER_OBJECT_POWBUBBLEDRONE = 0x153,
474 AER_OBJECT_POWSTUNDRONE = 0x154,
475 AER_OBJECT_FOLDER_NPC = 0x155,
476 AER_OBJECT_WAYPOINT = 0x156,
477 AER_OBJECT_LIZARDFAMILY = 0x157,
478 AER_OBJECT_CHANTBIRD = 0x158,
479 AER_OBJECT_NPCGENERIC = 0x159,
480 AER_OBJECT_NPCALTDRIFTER = 0x15a,
481 AER_OBJECT_NPC = 0x15b,
482 AER_OBJECT_CITIZEN = 0x15c,
483 AER_OBJECT_BUFFALO = 0x15d,
484 AER_OBJECT_BADASSDRIFTER = 0x15e,
485 AER_OBJECT_BADASSINAPARTMENT = 0x15f,
486 AER_OBJECT_BADASSINOFFICE = 0x160,
487 AER_OBJECT_FOLDER_END2 = 0x161,
488 AER_OBJECT_NPCCUSTOMBASE = 0x162,
489 AER_OBJECT_FOLDER_WILDLIFE = 0x163,
490 AER_OBJECT_DIRKGOALIE = 0x164,
491 AER_OBJECT_EMBERFOX = 0x165,
492 AER_OBJECT_ABYSSDOG = 0x166,
493 AER_OBJECT_JARFROGCARRY = 0x167,
494 AER_OBJECT_FROGDRAGOTTER = 0x168,
495 AER_OBJECT_TADPOLE = 0x169,
496 AER_OBJECT_FLY = 0x16a,
497 AER_OBJECT_TINYFLY = 0x16b,
498 AER_OBJECT_EEL = 0x16c,
499 AER_OBJECT_SNAIL = 0x16d,
500 AER_OBJECT_BIRDMANFLYAWAY = 0x16e,
501 AER_OBJECT_FISH = 0x16f,
502 AER_OBJECT_DOG = 0x170,
503 AER_OBJECT_SQUIRREL = 0x171,
504 AER_OBJECT_DEER = 0x172,
505 AER_OBJECT_ROBIN = 0x173,
506 AER_OBJECT_CROW = 0x174,
507 AER_OBJECT_HALBIRD = 0x175,
508 AER_OBJECT_HERON = 0x176,
509 AER_OBJECT_WILDDRONE = 0x177,
510 AER_OBJECT_SQUIDBOT = 0x178,
511 AER_OBJECT_SCORPBOT = 0x179,
512 AER_OBJECT_BIRD = 0x17a,
513 AER_OBJECT_BIRDBLACK = 0x17b,
514 AER_OBJECT_FOLDER_ENDW = 0x17c,
515 AER_OBJECT_WILDLIFE = 0x17d,
516 AER_OBJECT_WEATHEROBJ = 0x17e,
517 AER_OBJECT_BLACKRAIN = 0x17f,
518 AER_OBJECT_FOLDER_FX = 0x180,
519 AER_OBJECT_COLORREGION = 0x181,
520 AER_OBJECT_SCREENDUST = 0x182,
521 AER_OBJECT_TINYDUST = 0x183,
522 AER_OBJECT_RAINBOWGLITTER = 0x184,
523 AER_OBJECT_PULSER = 0x185,
524 AER_OBJECT_WATERSPARKLE = 0x186,
525 AER_OBJECT_RAINBOWBGDUST = 0x187,
526 AER_OBJECT_SNOWMAKER = 0x188,
527 AER_OBJECT_SLOWSNOW = 0x189,
528 AER_OBJECT_RAINMAKER = 0x18a,
529 AER_OBJECT_LEAKYRAIN = 0x18b,
530 AER_OBJECT_LEAKYRAINPART = 0x18c,
531 AER_OBJECT_BLACKRAINMAKER = 0x18d,
532 AER_OBJECT_CLOUDS = 0x18e,
533 AER_OBJECT_FGMIST = 0x18f,
534 AER_OBJECT_LIGHTNING = 0x190,
535 AER_OBJECT_FOLDER_ENDWEATH = 0x191,
536 AER_OBJECT_CLOUDWRAP = 0x192,
537 AER_OBJECT_RAIN = 0x193,
538 AER_OBJECT_SNOW = 0x194,
539 AER_OBJECT_DUSTPART = 0x195,
540 AER_OBJECT_DASHBLOCK = 0x196,
541 AER_OBJECT_BLOCK = 0x197,
542 AER_OBJECT_SOFTBLOCK = 0x198,
543 AER_OBJECT_BLOCK2 = 0x199,
544 AER_OBJECT_BLOCKPATHFINDLESS = 0x19a,
545 AER_OBJECT_PARTBLOCK = 0x19b,
546 AER_OBJECT_OVERWALL = 0x19c,
547 AER_OBJECT_UNDERWALL = 0x19d,
548 AER_OBJECT_SAFEPLATFORM = 0x19e,
549 AER_OBJECT_PROTECTIONPLATFORM = 0x19f,
557 AER_OBJECT_ROOMMAPDATA = 0x1a1,
558 AER_OBJECT_DRAWPOINT = 0x1a2,
559 AER_OBJECT_DRAWLINE = 0x1a3,
560 AER_OBJECT_DRAWCIRCLE = 0x1a4,
561 AER_OBJECT_DRAWOVAL = 0x1a5,
562 AER_OBJECT_DRAWTEXT = 0x1a6,
569 AER_OBJECT_HITCOLLIDER = 0x1a8,
574 AER_OBJECT_DECOY = 0x1aa,
575 AER_OBJECT_PHANTOMSLASH = 0x1ab,
576 AER_OBJECT_CHARHITMASK = 0x1ac,
577 AER_OBJECT_DEADCHAR = 0x1ad,
578 AER_OBJECT_DEADP2 = 0x1ae,
579 AER_OBJECT_GHOST = 0x1af,
580 AER_OBJECT_ALTCOMPANION = 0x1b0,
581 AER_OBJECT_ORB = 0x1b1,
582 AER_OBJECT_ROLLYPOLLY = 0x1b2,
583 AER_OBJECT_ROLLYROCKET = 0x1b3,
584 AER_OBJECT_CRYSTALLANCE = 0x1b4,
585 AER_OBJECT_CRYSTALMARKER = 0x1b5,
586 AER_OBJECT_CRYSTALMAKER = 0x1b6,
587 AER_OBJECT_CRYSTAL = 0x1b7,
588 AER_OBJECT_DIAMONDBULLET = 0x1b8,
589 AER_OBJECT_BYUUBLOCKCOLLIDER = 0x1b9,
590 AER_OBJECT_BOMB = 0x1ba,
591 AER_OBJECT_LEAPFLAME = 0x1bb,
592 AER_OBJECT_RAILLASER = 0x1bc,
593 AER_OBJECT_CANNONCHUNK = 0x1bd,
594 AER_OBJECT_WARPHAMMER = 0x1be,
595 AER_OBJECT_HOLOAIMER = 0x1bf,
596 AER_OBJECT_CHARFIRESHADOW = 0x1c0,
597 AER_OBJECT_BLASTSHOCKWAVE = 0x1c1,
598 AER_OBJECT_BLAST = 0x1c2,
599 AER_OBJECT_BOUNCESPARK = 0x1c3,
600 AER_OBJECT_DROPLET = 0x1c4,
601 AER_OBJECT_DUSTPILLAR = 0x1c5,
602 AER_OBJECT_FADEDEBRI = 0x1c6,
603 AER_OBJECT_BREAKDEBRI = 0x1c7,
604 AER_OBJECT_SPINDEBRI = 0x1c8,
605 AER_OBJECT_FIRE = 0x1c9,
606 AER_OBJECT_FLAG = 0x1ca,
607 AER_OBJECT_FOOTPRINT = 0x1cb,
608 AER_OBJECT_GRASSCLIPPING = 0x1cc,
609 AER_OBJECT_IMAGEFADE = 0x1cd,
610 AER_OBJECT_IMAGESTAY = 0x1ce,
611 AER_OBJECT_IMAGEPART = 0x1cf,
612 AER_OBJECT_MEATBLAST = 0x1d0,
613 AER_OBJECT_SHATTER = 0x1d1,
614 AER_OBJECT_SNAPFX = 0x1d2,
615 AER_OBJECT_SPARKFLASH = 0x1d3,
616 AER_OBJECT_SPARKSHOWER = 0x1d4,
617 AER_OBJECT_SPLASH = 0x1d5,
618 AER_OBJECT_TELEPORTERFX = 0x1d6,
619 AER_OBJECT_BLOODPART = 0x1d7,
620 AER_OBJECT_BLOODSPRAY = 0x1d8,
621 AER_OBJECT_BLOODSTAIN = 0x1d9,
622 AER_OBJECT_VIRUSSTAIN = 0x1da,
623 AER_OBJECT_GIBLET = 0x1db,
624 AER_OBJECT_FRIEDGIB = 0x1dc,
625 AER_OBJECT_TELEPORTFX = 0x1dd,
626 AER_OBJECT_GOGGLETRAIL = 0x1de,
627 AER_OBJECT_DASHDIAMOND = 0x1df,
628 AER_OBJECT_BURNTGROUND = 0x1e0,
629 AER_OBJECT_DEATHDUST = 0x1e1,
630 AER_OBJECT_SMOKESMALL = 0x1e2,
631 AER_OBJECT_SMOKE = 0x1e3,
632 AER_OBJECT_ROCKETSPLIT = 0x1e4,
633 AER_OBJECT_EXPLOSIONPARTICLE = 0x1e5,
634 AER_OBJECT_DUSTDASH = 0x1e6,
635 AER_OBJECT_MISSILESMOKE = 0x1e7,
636 AER_OBJECT_PARRYFLASH = 0x1e8,
637 AER_OBJECT_RUNDUST = 0x1e9,
638 AER_OBJECT_SHIELDDUST = 0x1ea,
639 AER_OBJECT_IMPACTDUST = 0x1eb,
640 AER_OBJECT_SMOKESPAWN = 0x1ec,
641 AER_OBJECT_DUSTBALL = 0x1ed,
642 AER_OBJECT_SLIMETRAIL = 0x1ee,
643 AER_OBJECT_SLIMEPART = 0x1ef,
644 AER_OBJECT_TWOFRAMEDEATH = 0x1f0,
645 AER_OBJECT_BIRDMANTUMBLE = 0x1f1,
646 AER_OBJECT_MUZZLEFLASH = 0x1f2,
647 AER_OBJECT_ZELISKAEMMITTER = 0x1f3,
648 AER_OBJECT_RAILLASERFADE = 0x1f4,
649 AER_OBJECT_SHIELDPUSHSMALL = 0x1f5,
650 AER_OBJECT_SHIELDPUSHMEDIUM = 0x1f6,
651 AER_OBJECT_SHIELDPUSHLARGE = 0x1f7,
652 AER_OBJECT_MASTERMUFFLER = 0x1f8,
653 AER_OBJECT_XPSOUND = 0x1f9,
654 AER_OBJECT_MISSILEHALF = 0x1fa,
655 AER_OBJECT_FIREONGROUND = 0x1fb,
656 AER_OBJECT_EXECUTEDELAYEDOBJ = 0x1fc,
657 AER_OBJECT_OBJCTTVIDEOPLAYER = 0x1fd
659
660/* ----- PUBLIC FUNCTIONS ----- */
661
687int32_t AERObjectRegister(const char* name,
688 int32_t parentIdx,
689 int32_t spriteIdx,
690 int32_t maskIdx,
691 int32_t depth,
692 bool visible,
693 bool collisions,
694 bool persistent);
695
706
720int32_t AERObjectGetByName(const char* name);
721
734const char* AERObjectGetName(int32_t objIdx);
735
748int32_t AERObjectGetParent(int32_t objIdx);
749
776size_t AERObjectGetChildren(int32_t objIdx,
777 bool recursive,
778 size_t bufSize,
779 int32_t* objBuf);
780
805int32_t AERObjectRelationTo(int32_t targetIdx, int32_t otherIdx);
806
825bool AERObjectCompatibleWith(int32_t targetIdx, int32_t otherIdx);
826
840bool AERObjectGetCollisions(int32_t objIdx);
841
853void AERObjectSetCollisions(int32_t objIdx, bool collisions);
854
867bool AERObjectGetPersistent(int32_t objIdx);
868
880void AERObjectSetPersistent(int32_t objIdx, bool persistent);
881
894bool AERObjectGetVisible(int32_t objIdx);
895
907void AERObjectSetVisible(int32_t objIdx, bool visible);
908
932 bool (*listener)(AEREvent* event,
933 AERInstance* target,
934 AERInstance* other));
935
960 bool (*listener)(AEREvent* event,
961 AERInstance* target,
962 AERInstance* other));
963
988 uint32_t alarmIdx,
989 bool (*listener)(AEREvent* event,
990 AERInstance* target,
991 AERInstance* other));
992
1012 bool (*listener)(AEREvent* event,
1013 AERInstance* target,
1014 AERInstance* other));
1015
1037 bool (*listener)(AEREvent* event,
1038 AERInstance* target,
1039 AERInstance* other));
1040
1060 bool (*listener)(AEREvent* event,
1061 AERInstance* target,
1062 AERInstance* other));
1063
1089void AERObjectAttachCollisionListener(int32_t targetObjIdx,
1090 int32_t otherObjIdx,
1091 bool (*listener)(AEREvent* event,
1092 AERInstance* target,
1093 AERInstance* other));
1094
1121 bool (*listener)(AEREvent* event,
1122 AERInstance* target,
1123 AERInstance* other));
1124
1152 bool (*listener)(AEREvent* event,
1153 AERInstance* target,
1154 AERInstance* other));
1155
1179 bool (*listener)(AEREvent* event,
1180 AERInstance* target,
1181 AERInstance* other));
1182
1220 bool (*listener)(AEREvent* event,
1221 AERInstance* target,
1222 AERInstance* other));
1223
1247 bool (*listener)(AEREvent* event,
1248 AERInstance* target,
1249 AERInstance* other));
1250
1251#endif /* AER_OBJECT_H */
Utilities for querying and manipulating object events.
Utilities for querying and manipulating game instances.
void AERInstance
Opaque type for instance of an object.
Definition: instance.h:36
int32_t AERObjectRelationTo(int32_t targetIdx, int32_t otherIdx)
Query the relational distance between two objects.
AERObjectIndex
Vanilla objects.
Definition: object.h:101
@ AER_OBJECT_ENEMY
Base object from which all enemys inherit.
Definition: object.h:134
@ AER_OBJECT_REGION
A rectangular area that detects collisions with a set object type.
Definition: object.h:190
@ AER_OBJECT_DESTRUCTABLE
Objects that release energy when destroyed.
Definition: object.h:241
@ AER_OBJECT_PATHFINDOBSTACLE
All "solid" objects must either directly or indirectly inherit from this object.
Definition: object.h:150
@ AER_OBJECT_CHAR
Player character.
Definition: object.h:573
@ AER_OBJECT_ANALYTICS
Container for general information about the current save file.
Definition: object.h:115
@ AER_OBJECT_NULL
Flag which represents either no object or an invalid object depending on context.
Definition: object.h:106
@ AER_OBJECT_DOOR
Door that takes the drifter to a new room.
Definition: object.h:182
@ AER_OBJECT_ATTACKCOL
The drifter's melee attack.
Definition: object.h:568
@ AER_OBJECT_SECONDARY
A gun used by the drifter. An instance is permanently loaded for each gun you have picked up.
Definition: object.h:556
void AERObjectSetCollisions(int32_t objIdx, bool collisions)
Set whether or not an object has collision checking enabled.
void AERObjectAttachRoomStartListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a room-start event listener to an object.
size_t AERObjectGetChildren(int32_t objIdx, bool recursive, size_t bufSize, int32_t *objBuf)
Query the children of an object.
void AERObjectAttachCollisionListener(int32_t targetObjIdx, int32_t otherObjIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a collision event listener to an object.
bool AERObjectGetPersistent(int32_t objIdx)
Query the default persistence of an object.
size_t AERObjectGetNumRegistered(void)
Query the total number of vanilla and mod objects registered.
void AERObjectSetVisible(int32_t objIdx, bool visible)
Set the default visibility of an object.
void AERObjectAttachStepListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a step event listener to an object.
void AERObjectSetPersistent(int32_t objIdx, bool persistent)
Set the default persistence of an object.
void AERObjectAttachAlarmListener(int32_t objIdx, uint32_t alarmIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach an alarm event listener to an object.
void AERObjectAttachDrawListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a draw event listener to an object.
int32_t AERObjectGetParent(int32_t objIdx)
Query the parent of an object.
bool AERObjectGetCollisions(int32_t objIdx)
Query whether or not an object has collision checking enabled.
int32_t AERObjectRegister(const char *name, int32_t parentIdx, int32_t spriteIdx, int32_t maskIdx, int32_t depth, bool visible, bool collisions, bool persistent)
Register a custom object.
void AERObjectAttachPostStepListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a post-step event listener to an object.
bool AERObjectGetVisible(int32_t objIdx)
Query the default visibility of an object.
void AERObjectAttachRoomEndListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a room-end event listener to an object.
const char * AERObjectGetName(int32_t objIdx)
Query the name of an object.
void AERObjectAttachGUIDrawListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a GUI-draw event listener to an object.
void AERObjectAttachCreateListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a creation event listener to an object.
bool AERObjectCompatibleWith(int32_t targetIdx, int32_t otherIdx)
Query whether an object is or inherits from another object.
int32_t AERObjectGetByName(const char *name)
Query the object with a specific name.
void AERObjectAttachPreStepListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a pre-step event listener to an object.
void AERObjectAttachAnimationEndListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach an animation-end event listener to an object.
void AERObjectAttachDestroyListener(int32_t objIdx, bool(*listener)(AEREvent *event, AERInstance *target, AERInstance *other))
Attach a destruction event listener to an object.
Semi-opaque type for an object event.
Definition: event.h:38