/** * Glossary: * EVID: Event ID * EVACT: Event Action * EVOP: Event Opcode * EVC: Event Condition * EVSTATE: Event State * * Level Prefixes: * CO: Corneria * ME: Meteo * SX: Sector X * SY: Sector Y * SZ: Sector Z * KA: Katina * AQ: Aquas * A6: Area 6 * FO: Fortuna * SO: Solar * MA: Macbeth * TI: Titania * BO: Bolse * ZO: Zoness * VE1: Venom 1 * VE2: Venom 2 * AND: Venom Andross * WZ: Warpzone */ #ifndef SF64_EVENT #define SF64_EVENT #define evaLoopCount(actor) (actor)->iwork[0] #define evaTargetActorIndex(actor) (actor)->iwork[1] #define evaTrigCondition(actor) (actor)->iwork[2] #define evaTrigCmdIndex(actor) (actor)->iwork[3] #define EvaIwork4(actor) (actor)->iwork[4] #define evaMoveModeZ(actor) (actor)->iwork[5] #define evaRotateFlag(actor) (actor)->iwork[6] #define evaTexLineFlag(actor) (actor)->iwork[7] #define evaTexLineIndex(actor) (actor)->iwork[8] #define evaLeaderActorIndex(actor) (actor)->iwork[9] #define EvaIwork10(actor) (actor)->iwork[10] #define EvaIwork11(actor) (actor)->iwork[11] #define EvaIwork12(actor) (actor)->iwork[12] #define evaFormationFly(actor) (actor)->iwork[13] #define EvaIwork14(actor) (actor)->iwork[14] #define EvaIwork15(actor) (actor)->iwork[15] #define EvaIwork16(actor) (actor)->iwork[16] #define EvaIwork17(actor) (actor)->iwork[17] #define EvaIwork18(actor) (actor)->iwork[18] #define EvaIwork19(actor) (actor)->iwork[19] #define evaTrigCondition0(actor) (actor)->iwork[20] #define evaTrigCondition1(actor) (actor)->iwork[21] #define evaTrigCondition2(actor) (actor)->iwork[22] #define evaTrigCondition3(actor) (actor)->iwork[23] #define evaTrigCondition4(actor) (actor)->iwork[24] #define EvaFwork0(actor) (actor)->fwork[0] #define EvaFwork1(actor) (actor)->fwork[1] #define EvaFwork2(actor) (actor)->fwork[2] #define EvaFwork3(actor) (actor)->fwork[3] #define EvaFwork4(actor) (actor)->fwork[4] #define EvaFwork5(actor) (actor)->fwork[5] #define EvaFwork6(actor) (actor)->fwork[6] #define EvaFwork7(actor) (actor)->fwork[7] #define EvaFwork8(actor) (actor)->fwork[8] #define EvaFwork9(actor) (actor)->fwork[9] #define EvaFwork10(actor) (actor)->fwork[10] #define EvaFwork11(actor) (actor)->fwork[11] #define EvaFwork12(actor) (actor)->fwork[12] #define EvaFwork13(actor) (actor)->fwork[13] #define EvaFwork14(actor) (actor)->fwork[14] #define EvaFwork15(actor) (actor)->fwork[15] #define EvaFwork16(actor) (actor)->fwork[16] #define evaTargetSpread(actor) (actor)->fwork[17] #define EvaFwork18(actor) (actor)->fwork[18] #define EvaFwork19(actor) (actor)->fwork[19] #define EvaFwork20(actor) (actor)->fwork[20] #define EvaFwork21(actor) (actor)->fwork[21] #define EvaFwork22(actor) (actor)->fwork[22] #define EvaFwork23(actor) (actor)->fwork[23] #define evaTargetTurnRate(actor) (actor)->fwork[24] #define EvaFwork25(actor) (actor)->fwork[25] #define EvaFwork26(actor) (actor)->fwork[26] #define EvaFwork27(actor) (actor)->fwork[27] #define EvaFwork28(actor) (actor)->fwork[28] #define EvaFwork29(actor) (actor)->fwork[29] #define EV_OPC(opcode) (((opcode) & 0x7F) << 9) #define EV_OPC_MASK(cmd) ((cmd) & (0x7F << 9)) #define EVENT_CMD(opcode, arg1, arg2) (EV_OPC(opcode) | ((s16) (arg1) & 0x1FF)), (arg2) #define EV_ZMODE(zmode) (((zmode) & 3) << 7) #define EV_ZMODE_MASK(cmd) ((cmd) & (3 << 7)) #define EV_CHANGE_AI 200 #define EVENT_SET_SPEED(speed, zmode, time) EVENT_CMD(EVOP_SET_SPEED, EV_ZMODE(zmode) | ((speed) & 0x7F), time) #define EVENT_SET_ACCEL(speedTarget, zmode, time) EVENT_CMD(EVOP_SET_ACCEL, EV_ZMODE(zmode) | ((speedTarget) & 0x7F), time) #define EVENT_SET_BASE_ZVEL(zvel) EVENT_CMD(EVOP_SET_BASE_ZVEL, 0, zvel) #define EVENT_SET_AS_LEADER() EVENT_CMD(EVOP_SET_AS_LEADER, 0 ,0 ) #define EVENT_START_FORMATION(duration) EVENT_CMD(EVOP_START_FORMATION, 0, duration) #define EVENT_STOP_FORMATION() EVENT_CMD(EVOP_STOP_FORMATION, 0, 0) #define EVENT_F4_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_X, (rotVel) * 10, rot) #define EVENT_F4_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_X, (rotVel) * 10, rot) #define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, (rotVel) * 10, rot) #define EVENT_F4_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_Y, (rotVel) * 10, rot) #define EVENT_ROT_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_X, (rotVel) * 10, rot) #define EVENT_ROT_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_X, (rotVel) * 10, rot) #define EVENT_ROT_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Y, (rotVel) * 10, rot) #define EVENT_ROT_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Y, (rotVel) * 10, rot) #define EVENT_ROT_PLUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Z, (rotVel) * 10, rot) #define EVENT_ROT_MINUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Z, (rotVel) * 10, rot) #define EVENT_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0) #define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0) #define EVENT_PURSUE_PLAYER(duration, turnRate) EVENT_CMD(EVOP_PURSUE_PLAYER, turnRate, duration) #define EVENT_FLEE_PLAYER(duration, turnRate) EVENT_CMD(EVOP_FLEE_PLAYER, turnRate, duration) #define EVENT_PURSUE_TARGET(duration, turnRate) EVENT_CMD(EVOP_PURSUE_TARGET, turnRate, duration) #define EVENT_FLEE_TARGET(duration, turnRate) EVENT_CMD(EVOP_FLEE_TARGET, turnRate, duration) #define EVENT_CHASE_TARGET(duration, turnRate) EVENT_CMD(EVOP_CHASE_TARGET, turnRate, duration) #define EVENT_SET_TARGET(teamId, spread) EVENT_CMD(EVOP_SET_TARGET, teamId, spread) #define EVENT_PURSUE_CAMERA(duration, turnRate) EVENT_CMD(EVOP_PURSUE_CAMERA, turnRate, duration) #define EVENT_FLEE_CAMERA(duration, turnRate) EVENT_CMD(EVOP_FLEE_CAMERA, turnRate, duration) #define EVENT_SET_WAIT(duration) EVENT_CMD(EVOP_SET_WAIT, 0, duration) #define EVENT_SET_CALL(duration, voiceParam) EVENT_CMD(EVOP_SET_CALL, voiceParam, duration) #define EVENT_RESTORE_TEAM(teammate) EVENT_CMD(EVOP_RESTORE_TEAM, 0, teammate) #define EVENT_PLAY_SFX(sfx) EVENT_CMD(EVOP_PLAY_SFX, 0, sfx) #define EVENT_STOP_SFX(sfx) EVENT_CMD(EVOP_STOP_SFX, 0, sfx) #define EVENT_SET_TRIGGER(cond, cmd) EVENT_CMD(EVOP_SET_TRIGGER, cmd, cond) #define EVENT_SET_Z_TRIGGER(z, cmd) EVENT_SET_TRIGGER(EVC_CLOSE_Z + (s32)((z) / 100), cmd) #define EVENT_CLEAR_TRIGGER(cmd) EVENT_SET_TRIGGER(EVC_NONE, cmd) #define EVENT_INIT_ACTOR(info, health) EVENT_CMD(EVOP_INIT_ACTOR, health, info) #define EVENT_SET_TEAM_ID(teamId) EVENT_CMD(EVOP_SET_TEAM_ID, 0, teamId) #define EVENT_SET_ACTION(action) EVENT_CMD(EVOP_SET_ACTION, 0, action) #define EVENT_ADD_TO_GROUP(num, flags) EVENT_CMD(EVOP_ADD_TO_GROUP, flags, num) #define EVENT_DROP_ITEM(item) EVENT_CMD(EVOP_DROP_ITEM, 0, item) #define EVENT_SET_REVERB(reverb) EVENT_CMD(EVOP_SET_REVERB, 0, reverb) #define EVENT_SET_SURFACE(type) EVENT_CMD(EVOP_SET_SURFACE, 0, type) #define EVENT_PLAY_MSG(rcid, msg) EVENT_CMD(EVOP_PLAY_MSG, rcid, msg) #define EVENT_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId) #define EVENT_STOP_BGM() EVENT_CMD(EVOP_STOP_BGM, 0, 0) #define EVENT_MAKE_TEXLINE(color) EVENT_CMD(EVOP_MAKE_TEXLINE, 0, color) #define EVENT_STOP_TEXLINE() EVENT_CMD(EVOP_STOP_TEXLINE, 0, 0) #define EVENT_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count) #define EVENT_GOTO(cmd) EVENT_LOOP(0, cmd) #define EVENT_STOP_SCRIPT() EVENT_CMD(EVOP_STOP_SCRIPT, 0, 0) typedef enum EventModeZ { EMZ_REST, EMZ_RELATIVE, EMZ_PLAYER, EMZ_3, } EventModeZ; typedef enum EventOpcode { /* 0 */ EVOP_SET_SPEED, /* 1 */ EVOP_SET_ACCEL, /* 2 */ EVOP_SET_BASE_ZVEL, /* 3 */ EVOP_SET_AS_LEADER, /* 4 */ EVOP_START_FORMATION, /* 8 */ EVOP_STOP_FORMATION = 8, /* 9 */ EVOP_F4_PLUS_X, /* 10 */ EVOP_F4_MINUS_X, /* 11 */ EVOP_F4_PLUS_Y, /* 12 */ EVOP_F4_MINUS_Y, /* 16 */ EVOP_ROT_PLUS_X = 16, /* 17 */ EVOP_ROT_MINUS_X, /* 18 */ EVOP_ROT_PLUS_Y, /* 19 */ EVOP_ROT_MINUS_Y, /* 20 */ EVOP_ROT_PLUS_Z, /* 21 */ EVOP_ROT_MINUS_Z, /* 24 */ EVOP_SET_ROTATE = 24, /* 25 */ EVOP_STOP_ROTATE, /* 40 */ EVOP_PURSUE_PLAYER = 40, /* 41 */ EVOP_FLEE_PLAYER, /* 42 */ EVOP_PURSUE_TARGET, /* 43 */ EVOP_FLEE_TARGET, /* 44 */ EVOP_CHASE_TARGET, /* 45 */ EVOP_SET_TARGET, /* 46 */ EVOP_PURSUE_CAMERA, /* 47 */ EVOP_FLEE_CAMERA, /* 48 */ EVOP_SET_WAIT, /* 56 */ EVOP_SET_CALL = 56, /* 57 */ EVOP_RESTORE_TEAM, /* 58 */ EVOP_PLAY_SFX, /* 59 */ EVOP_STOP_SFX, /* 96 */ EVOP_SET_TRIGGER = 96, /* 104 */ EVOP_INIT_ACTOR = 104, /* 105 */ EVOP_SET_TEAM_ID, /* 112 */ EVOP_SET_ACTION = 112, /* 113 */ EVOP_ADD_TO_GROUP, /* 116 */ EVOP_DROP_ITEM = 116, /* 118 */ EVOP_SET_REVERB = 118, /* 119 */ EVOP_SET_SURFACE, /* 120 */ EVOP_PLAY_MSG, /* 121 */ EVOP_DAMAGE_TEAM, /* 122 */ EVOP_STOP_BGM, /* 124 */ EVOP_MAKE_TEXLINE = 124, /* 125 */ EVOP_STOP_TEXLINE, /* 126 */ EVOP_LOOP, /* 127 */ EVOP_STOP_SCRIPT, } EventOpcode; typedef enum EventCondition { /* 0 */ EVC_NONE, /* 1 */ EVC_NO_TARGET, /* 2 */ EVC_TEAM_COUNT_3, /* 3 */ EVC_TEAM_COUNT_2, /* 4 */ EVC_TEAM_COUNT_1, /* 5 */ EVC_TEAM_COUNT_0, /* 6 */ EVC_FALCO_ACTIVE, /* 7 */ EVC_PEPPY_ACTIVE, /* 8 */ EVC_SLIPPY_ACTIVE, /* 9 */ EVC_CLOSE_LEFT_100, /* 10 */ EVC_CLOSE_LEFT_400, /* 11 */ EVC_CLOSE_LEFT_700, /* 12 */ EVC_CLOSE_LEFT_200, /* 13 */ EVC_CLOSE_RIGHT_100, /* 14 */ EVC_CLOSE_RIGHT_400, /* 15 */ EVC_CLOSE_RIGHT_700, /* 16 */ EVC_CLOSE_RIGHT_200, /* 17 */ EVC_CLOSE_ABOVE_100, /* 18 */ EVC_CLOSE_ABOVE_400, /* 19 */ EVC_CLOSE_ABOVE_700, /* 20 */ EVC_CLOSE_ABOVE_200, /* 21 */ EVC_CLOSE_BELOW_100, /* 22 */ EVC_CLOSE_BELOW_400, /* 23 */ EVC_CLOSE_BELOW_700, /* 24 */ EVC_CLOSE_BELOW_200, /* 25 */ EVC_HEALTH_100p, /* 26 */ EVC_HEALTH_75p, /* 27 */ EVC_HEALTH_50p, /* 28 */ EVC_HEALTH_25p, /* 29 */ EVC_HEALTH_0p, /* 30 */ EVC_UNK270_5PLUS, /* 31 */ EVC_UNK270_NONZERO, /* 32 */ EVC_UNK270_ZERO, /* 33 */ EVC_UNK250_GREATER_168, /* 34 */ EVC_UNK250_LESS_84, /* 35 */ EVC_SINGLE_LASER, /* 36 */ EVC_TWIN_LASER, /* 37 */ EVC_HYPER_LASER, /* 38 */ EVC_UNK3_LASER, /* 39 */ EVC_SHOT_CLOSE_150, /* 40 */ EVC_SHOT_CLOSE_300, /* 41 */ EVC_NO_LEADER, /* 42 */ EVC_NO_FOLLOWER, /* 43 */ EVC_HAS_FOLLOWER, /* 44 */ EVC_TOOK_DAMAGE, /* 45 */ EVC_PASSED_ALL_RINGS, /* 46 */ EVC_ATTACK_GROUP_CLEARED, /* 47 */ EVC_PRESS_CRIGHT, /* 48 */ EVC_WING_BROKEN, /* 49 */ EVC_ME_CLEAR, /* 50 */ EVC_FO_CLEAR, /* 51 */ EVC_SX_CLEAR, /* 52 */ EVC_TI_CLEAR, /* 53 */ EVC_BO_CLEAR, /* 54 */ EVC_SY_CLEAR, /* 55 */ EVC_KA_CLEAR, /* 56 */ EVC_SO_CLEAR, /* 57 */ EVC_MA_CLEAR, /* 58 */ EVC_AQ_CLEAR, /* 59 */ EVC_ZO_CLEAR, /* 60 */ EVC_SZ_CLEAR, /* 61 */ EVC_A6_CLEAR, /* 62 */ EVC_NOT_CHASED, /* 63 */ EVC_CHASED, /* 64 */ EVC_MISSED_SEARCHLIGHT, /* 65 */ EVC_30_HITS, /* 66 */ EVC_80_HITS, /* 67 */ EVC_EXPERT_MODE, /* 100 */ EVC_CLOSE_Z=100, } EventCondition; typedef enum EventState { /* 0 */ EVSTATE_READY, /* 1 */ EVSTATE_WAIT, /* 2 */ EVSTATE_F4_PLUS_X, /* 3 */ EVSTATE_F4_MINUS_X, /* 4 */ EVSTATE_F4_PLUS_Y, /* 5 */ EVSTATE_F4_MINUS_Y, /* 6 */ EVSTATE_PURSUE_PLAYER, /* 7 */ EVSTATE_FLEE_PLAYER, /* 8 */ EVSTATE_PURSUE_TARGET, /* 9 */ EVSTATE_FLEE_TARGET, /* 10 */ EVSTATE_ME_AS_OPEN, /* 11 */ EVSTATE_ME_AS_CLOSE, /* 12 */ EVSTATE_TEAM_RETREAT, /* 13 */ EVSTATE_CHASE_TARGET, /* 14 */ EVSTATE_PURSUE_CAMERA, /* 15 */ EVSTATE_FLEE_CAMERA, /* 200 */ EVSTATE_SCRIPT_END = 200, /* 1000 */ EVSTATE_1000 = 1000, } EventState; typedef enum EventAction { /* 0 */ EVACT_NONE, /* 1 */ EVACT_1, /* 2 */ EVACT_2, /* 3 */ EVACT_3, /* 4 */ EVACT_4, /* 5 */ EVACT_5, /* 6 */ EVACT_6, /* 7 */ EVACT_7, /* 8 */ EVACT_8, /* 9 */ EVACT_9, /* 10 */ EVACT_10, /* 11 */ EVACT_11, /* 12 */ EVACT_DESPAWN, /* 13 */ EVACT_TI_DROP_MINE, /* 14 */ EVACT_ME_AS_OPEN, /* 15 */ EVACT_ME_AS_CLOSE, /* 16 */ EVACT_16, /* 17 */ EVACT_17, /* 18 */ EVACT_GFOX_COVER_FIRE, /* 19 */ EVACT_19, // projectile ring used by bee enemies } EventAction; typedef enum EventActorId { /* 0 */ EVID_VENOM_FIGHTER_1, /* 1 */ EVID_VENOM_FIGHTER_2, /* 2 */ EVID_ME_SLIPPY, /* 3 */ EVID_SPY_EYE, // jp name: Sunfish II /* 4 */ EVID_GRANGA_FIGHTER_1, // jp name: Dragon /* 5 */ EVID_GRANGA_FIGHTER_2, // jp name: Dragon II /* 6 */ EVID_FIREBIRD, // Handles Firebird from Corneria and Gore from Solar /* 7 */ EVID_CORNERIAN_FIGHTER, // Seems unused? /* 8 */ EVID_VENOM_TANK, /* 9 */ EVID_TRIPOD, // jp name: Butterfly /* 10 */ EVID_ATTACKER_1, /* 11 */ EVID_ATTACKER_2, /* 12 */ EVID_ATTACKER_3, /* 13 */ EVID_ME_METEOR_1, /* 14 */ EVID_ME_METEOR_2, /* 15 */ EVID_COMMANDER, /* 16 */ EVID_SPIDER, /* 17 */ EVID_ZERAM_CLASS_CRUISER, /* 18 */ EVID_SX_SPY_EYE, // jp name: Sunfish I /* 19 */ EVID_SX_CANINE, /* 20 */ EVID_SPACE_MINE, /* 21 */ EVID_A6_NINJIN_MISSILE, /* 22 */ EVID_A6_ROCKET, /* 23 */ EVID_VENOM_FIGHTER_3, /* 24 */ EVID_SX_BASE_DEBRIS_1, /* 25 */ EVID_SX_BASE_WALL_1, /* 26 */ EVID_SX_BASE_DEBRIS_2, /* 27 */ EVID_SX_LASER, /* 28 */ EVID_SX_WATCH_POST, // Invented name /* 29 */ EVID_SX_SPACE_MINE, /* 30 */ EVID_A6_HARLOCK_FRIGATE, /* 31 */ EVID_A6_UMBRA_STATION, /* 32 */ EVID_SX_BASE_FLOOR_1, /* 33 */ EVID_CRUISER_GUN, // Guns located on Zeram-class Cruisers /* 34 */ EVID_SX_BASE_WALL_2, /* 35 */ EVID_SX_BASE_WALL_3, /* 36 */ EVID_TI_BOMBER, // Bird-like ship that drops land mines /* 37 */ EVID_SX_BORZOI_FIGHTER, /* 38 */ EVID_SX_WARP_GATE, /* 39 */ EVID_SX_BASE_WALL_TILE_1, /* 40 */ EVID_EVENT_HANDLER, /* 41 */ EVID_SY_SHIP_1, /* 42 */ EVID_SY_SHIP_2, /* 43 */ EVID_TEAMMATE, /* 44 */ EVID_SY_SHIP_3, /* 45 */ EVID_ME_METEOR_3, /* 46 */ EVID_ZO_PATROL_BOAT, /* 47 */ EVID_ME_SECRET_MARKER_1, // Metal spheres that mark secret items. Invented name /* 48 */ EVID_SY_ROBOT_1, /* 49 */ EVID_SY_ROBOT_2, /* 50 */ EVID_SY_ROBOT_3, /* 51 */ EVID_SY_ROBOT_4, // Unclear as to whether it's used or not, only it's hitbox gets used in code /* 52 */ EVID_SARUMARINE_PERISCOPE, /* 53 */ EVID_SX_BASE_WALL_4, /* 54 */ EVID_GAMMA_ON, // Andross Army Gamma-Off Formation Leader (Orange Andross Fighter) /* 55 */ EVID_GAMMA_OFF, // Blue Andross Fighter /* 56 */ EVID_TI_GREAT_FOX, // Great Fox that flees after the intro cutscene /* 57 */ EVID_SY_SHIP_3_2, // Another variant of EVID_SY_SHIP_3 without a hitbox, seems unused? /* 58 */ EVID_SY_SARUZIN, // flagship of Sector Y, base of the Shogun Boss /* 59 */ EVID_SY_ROBOT_SPRITE_SIDE, // Robot sprites that appear in Sector Y's background, side variant /* 60 */ EVID_SY_ROBOT_SPRITE_FRONT, // Robot sprites that appear in Sector Y's background, front variant /* 61 */ EVID_ME_METEOR_4, /* 62 */ EVID_ME_METEOR_5, /* 63 */ EVID_ME_BIG_METEOR, // Big meteor that bounces in Meteo /* 64 */ EVID_ME_ROCK_GULL, // Enemy laser turret inside a meteorite /* 65 */ EVID_ME_METEOR_6, /* 66 */ EVID_ME_SECRET_MARKER_2, // Metal spheres that mark secret items. Invented name /* 67 */ EVID_ME_FLIP_BOT, /* 68 */ EVID_SY_LASER_TURRET, /* 69 */ EVID_SY_SHIP_DESTROYED, /* 70 */ EVID_SY_DEBRIS, // Sprite portraying small pieces of debris. Seems unused /* 71 */ EVID_ITEM_WING_REPAIR, /* 72 */ EVID_SY_SHIP_WINDOWS, /* 73 */ EVID_SY_SHIP_4, /* 74 */ EVID_SY_SHIP_4_DESTROYED, /* 75 */ EVID_SY_SHIP_2_SPRITE, // Unused /* 76 */ EVID_SY_SHIP_3_SPRITE, // Unused /* 77 */ EVID_SY_SHIP_MISSILE, /* 78 */ EVID_SUPPLY_CRATE, /* 79 */ EVID_ZO_BIRD, /* 80 */ EVID_VE1_PILLAR, /* 81 */ EVID_VE1_BLOCKER, /* 82 */ EVID_MA_LASER_TURRET, /* 83 */ EVID_AQ_OYSTER, /* 84 */ EVID_VE1_PILLAR_5, /* 85 */ EVID_BILL, /* 86 */ EVID_KATT, /* 87 */ EVID_VE1_TEMPLE_BG, // Background used inside Venom 1 temple to hide drawing popup /* 88 */ EVID_AQ_STARFISH, /* 89 */ EVID_AQ_SHELL, /* 90 */ EVID_MA_RAILROAD_CART, /* 91 */ EVID_MA_GUILLOTINE_1, /* 92 */ EVID_WZ_PILLAR_1, /* 93 */ EVID_WZ_PILLAR_2, /* 94 */ EVID_WZ_METEOR_1, /* 95 */ EVID_WZ_METEOR_2, /* 96 */ EVID_WZ_GATE, /* 97 */ EVID_ME_METEOR_7, /* 98 */ EVID_MA_BOULDER, /* 99 */ EVID_VE1_ENEMY_GATE, // Gate in Venom 1 for outcoming enemies /* 100 */ EVID_ENEMY_GATE_DOOR_RIGHT, /* 101 */ EVID_ENEMY_GATE_DOOR_LEFT, /* 102 */ EVID_TR_BARRIER, /* 103 */ EVID_ANDROSS_GATE, /* 104 */ EVID_ANDROSS_GATE_2, /* 105 */ EVID_SX_WARP_ENMY, /* 106 */ EVID_KILLER_BEE, /* 107 */ EVID_MA_GUILLOTINE_2, // Variant of the Macbeth Guillotine that can be shot at to be opened /* 200 */ EVID_200 = 200, /* 300 */ EVID_300 = 300, /* 4095*/ EVID_FFF = 4095, } EventActorId; typedef enum EventSfx { /* 0 */ EVSFX_OB_SLIDE_OPEN, /* 1 */ EVSFX_OB_SLIDE_CLOSE, /* 2 */ EVSFX_OB_STEELFRAME, /* 3 */ EVSFX_OB_HEAVY_BOUND, /* 4 */ EVSFX_ITEM_APPEAR, /* 5 */ EVSFX_OB_BLOCK_APPEAR, /* 6 */ EVSFX_OB_ROCKWALL_UP, /* 7 */ EVSFX_EN_UNIT_GATHERING, /* 8 */ EVSFX_EN_MOTOR_STOP, /* 9 */ EVSFX_EN_MS_DASH, /* 10 */ EVSFX_OB_ROCK_CRASH, /* 11 */ EVSFX_OB_ROCK_EYE_OPEN, /* 12 */ EVSFX_OB_SHIP_FALLDOWN, /* 13 */ EVSFX_OB_BOUND_M, /* 14 */ EVSFX_OB_SPEAR_PILLAR, /* 15 */ EVSFX_OB_PILLER_ROLL, /* 16 */ EVSFX_SEARCHLIGHT_MISS, /* 17 */ EVSFX_OB_ROUTEGATE_OPEN_Q, /* 18 */ EVSFX_OB_ROUTEGATE_CLOSE_Q, /* 19 */ EVSFX_OB_ROUTEGATE_OPEN_S, /* 20 */ EVSFX_OB_ROUTEGATE_CLOSE_S, /* 21 */ EVSFX_OB_LIFT, /* 22 */ EVSFX_OB_PLATE_ROLL, } EventSfx; typedef enum TexLineColor { /* 0 */ TXLC_WHITE, /* 1 */ TXLC_LIGHT_BLUE, /* 2 */ TXLC_BLUE, /* 3 */ TXLC_GREEN, /* 4 */ TXLC_RED, /* 5 */ TXLC_YELLOW, } TexLineColor; #endif