diff --git a/include/level_object_entries.h b/include/level_object_entries.h index d4151f02..b6d1821b 100644 --- a/include/level_object_entries.h +++ b/include/level_object_entries.h @@ -9,12 +9,16 @@ typedef struct LevelObjectEntryCommon { } LevelObjectEntryCommon; typedef struct LevelObjectEntry_1 { -/* 0x00 */ LevelObjectEntryCommon common; + /* 0x00 */ LevelObjectEntryCommon common; } LevelObjectEntry_1; -typedef struct LevelObjectEntry_2 { -/* 0x00 */ LevelObjectEntryCommon common; -} LevelObjectEntry_2; +typedef struct LevelObjectEntry_Scenery { + /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; + /* 0x09 */ u8 unk9; + /* 0x0A */ u8 unkA; + /* 0x0B */ u8 unkB; +} LevelObjectEntry_Scenery; typedef struct LevelObjectEntry_3 { /* 0x00 */ LevelObjectEntryCommon common; @@ -72,9 +76,18 @@ typedef struct LevelObjectEntry_16 { /* 0x00 */ LevelObjectEntryCommon common; } LevelObjectEntry_16; -typedef struct LevelObjectEntry_17 { -/* 0x00 */ LevelObjectEntryCommon common; -} LevelObjectEntry_17; +#define BALLOON_TYPE_BOOST 0 +#define BALLOON_TYPE_MISSILE 1 +#define BALLOON_TYPE_TRAP 2 +#define BALLOON_TYPE_SHIELD 3 +#define BALLOON_TYPE_MAGNET 4 + +typedef struct LevelObjectEntry_WeaponBalloon { + /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; // Unused? + /* 0x09 */ u8 balloonType; + /* 0x0A */ u8 scale; // This is divided by 64 to get actual scale. +} LevelObjectEntry_WeaponBalloon; typedef struct LevelObjectEntry_18 { /* 0x00 */ LevelObjectEntryCommon common; @@ -104,9 +117,11 @@ typedef struct LevelObjectEntry_27 { /* 0x00 */ LevelObjectEntryCommon common; } LevelObjectEntry_27; -typedef struct LevelObjectEntry_28 { -/* 0x00 */ LevelObjectEntryCommon common; -} LevelObjectEntry_28; +typedef struct LevelObjectEntry_Torch_Mist { + /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; + /* 0x09 */ u8 unk9; +} LevelObjectEntry_Torch_Mist; typedef struct LevelObjectEntry_29 { /* 0x00 */ LevelObjectEntryCommon common; @@ -260,13 +275,19 @@ typedef struct LevelObjectEntry_77 { /* 0x00 */ LevelObjectEntryCommon common; } LevelObjectEntry_77; -typedef struct LevelObjectEntry_78 { -/* 0x00 */ LevelObjectEntryCommon common; -} LevelObjectEntry_78; +typedef struct LevelObjectEntry_Laserbolt { + /* 0x00 */ LevelObjectEntryCommon common; +} LevelObjectEntry_Laserbolt; -typedef struct LevelObjectEntry_79 { -/* 0x00 */ LevelObjectEntryCommon common; -} LevelObjectEntry_79; +typedef struct LevelObjectEntry_Lasergun { + /* 0x00 */ LevelObjectEntryCommon common; + /* 0x08 */ u8 unk8; + /* 0x09 */ u8 unk9; + /* 0x0A */ s8 unkA; + /* 0x0B */ s8 unkB; + /* 0x0C */ u8 unkC; + /* 0x0D */ u8 unkD; +} LevelObjectEntry_Lasergun; typedef struct LevelObjectEntry_82 { /* 0x00 */ LevelObjectEntryCommon common; @@ -344,9 +365,9 @@ typedef struct LevelObjectEntry_105 { /* 0x00 */ LevelObjectEntryCommon common; } LevelObjectEntry_105; -typedef struct LevelObjectEntry_108 { +typedef struct LevelObjectEntry_Fireball_Octoweapon { /* 0x00 */ LevelObjectEntryCommon common; -} LevelObjectEntry_108; +} LevelObjectEntry_Fireball_Octoweapon; typedef struct LevelObjectEntry_109 { /* 0x00 */ LevelObjectEntryCommon common; diff --git a/rename.sh b/rename.sh index 4d31a792..35fa7c0c 100755 --- a/rename.sh +++ b/rename.sh @@ -9,7 +9,7 @@ then fi # Rename all instances within text files. -grep -rl "$1" asm/**/*.s src/**/*.{c,h} lib/**/*.{c,s} include/*.h undefined_syms.txt | xargs sed -i "s/\b$1\b/$2/g" +grep -rl "$1" asm/**/*.s src/**/*.{c,h} lib/**/*.{c,s} include/*.h undefined_syms.txt dkr.ld | xargs sed -i "s/\b$1\b/$2/g" # Rename filenames & directories. python3 ./tools/python/rename_file.py "$1" "$2" diff --git a/src/object_functions.c b/src/object_functions.c index 62fc6525..3348d3db 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -131,57 +131,49 @@ s16 D_8011D4E2; /******************************/ #ifdef NON_EQUIVALENT -typedef struct LevelObjectEntry80033CC0 { - LevelObjectEntryCommon common; - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; -} LevelObjectEntry80033CC0; - typedef struct Object_50_80033CC0 { f32 unk0; } Object_50_80033CC0; -void obj_init_scenery(Object *arg0, LevelObjectEntry80033CC0 *arg1) { +void obj_init_scenery(Object *obj, LevelObjectEntry_Scenery *entry) { f32 phi_f0; - arg0->unk6 |= 2; - phi_f0 = arg1->unk9 & 0xFF; + obj->unk6 |= 2; + phi_f0 = entry->unk9 & 0xFF; if (phi_f0 < 10) { phi_f0 = 10; } phi_f0 /= 64; - arg0->scale = arg0->header->scale * phi_f0; - ((Object_50_80033CC0 *)arg0->unk50)->unk0 = arg0->header->unk4 * phi_f0; - arg0->unk3A = arg1->unk8; - arg0->y_rotation = arg1->unkA << 6 << 4; - if (arg1->unkB) { + obj->scale = obj->header->scale * phi_f0; + ((Object_50_80033CC0 *)obj->unk50)->unk0 = obj->header->unk4 * phi_f0; + obj->unk3A = entry->unk8; + obj->y_rotation = entry->unkA << 6 << 4; + if (entry->unkB) { // Regalloc issue here - arg0->unk4C->unk14 = 1; - arg0->unk4C->unk11 = 1; - arg0->unk4C->unk10 = 0x14; - arg0->unk4C->unk12 = 0; - arg0->unk4C->unk16 = -5; - arg0->unk4C->unk17 = arg1->unkB; + obj->unk4C->unk14 = 1; + obj->unk4C->unk11 = 1; + obj->unk4C->unk10 = 0x14; + obj->unk4C->unk12 = 0; + obj->unk4C->unk16 = -5; + obj->unk4C->unk17 = entry->unkB; } - if (arg0->unk3A >= arg0->header->numberOfModelIds) { - arg0->unk3A = 0; + if (obj->unk3A >= obj->header->numberOfModelIds) { + obj->unk3A = 0; } - arg0->unk78 = 0; - arg0->unk7C.word = 0; + obj->unk78 = 0; + obj->unk7C.word = 0; } #else GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_init_scenery.s") #endif -void obj_loop_scenery(Object *obj, s32 arg1) { +void obj_loop_scenery(Object *obj, s32 speed) { Object78_80033DD0 *obj78; s32 temp_v0; if (obj->unk4C != NULL) { obj78 = &obj->unk78; if (obj->unk7C.half.upper > 0) { - obj78->unk4 -= arg1; + obj78->unk4 -= speed; } if ((obj->unk4C->unk14 & 0x40) && ((s32) obj78->unk4 <= 0)) { func_80009558(316, obj->x_position, obj->y_position, obj->z_position, 4, NULL); @@ -207,7 +199,7 @@ void obj_loop_scenery(Object *obj, s32 arg1) { } } -void obj_init_fireball_octoweapon(Object *arg0, s32 arg1) { +void obj_init_fireball_octoweapon(Object *arg0, LevelObjectEntry_Fireball_Octoweapon *arg1) { arg0->unk4C->unk14 = 2; arg0->unk4C->unk11 = 0; } @@ -359,7 +351,7 @@ void obj_loop_fireball_octoweapon(Object *obj, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_fireball_octoweapon.s") #endif -void obj_init_lasergun(Object *arg0, unk80034530 *arg1) { +void obj_init_lasergun(Object *arg0, LevelObjectEntry_Lasergun *arg1) { Object_64 *temp; arg0->unk4C->unk14 = 0x22; arg0->unk4C->unk11 = 0; @@ -375,8 +367,7 @@ void obj_init_lasergun(Object *arg0, unk80034530 *arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_lasergun.s") -// Literally the same function as obj_init_fireball_octoweapon() -void obj_init_laserbolt(Object *arg0, s32 arg1) { +void obj_init_laserbolt(Object *arg0, LevelObjectEntry_Laserbolt *arg1) { arg0->unk4C->unk14 = 2; arg0->unk4C->unk11 = 0; } @@ -464,18 +455,18 @@ void obj_loop_laserbolt(Object *obj, s32 arg1) { } } -void obj_init_torch_mist(Object *arg0, u8 *arg1) { - f32 phi_f0 = (s32)(arg1[9] & 0xFF); +void obj_init_torch_mist(Object *obj, LevelObjectEntry_Torch_Mist *entry) { + f32 phi_f0 = (s32)(entry->unk9 & 0xFF); if (phi_f0 < 10.0f) { phi_f0 = 10.0f; } phi_f0 /= 64; - arg0->scale = arg0->header->scale * phi_f0; - arg0->unk78 = arg1[8]; + obj->scale = obj->header->scale * phi_f0; + obj->unk78 = entry->unk8; } -void obj_loop_torch_mist(unk80034B4C *arg0, s32 arg1) { - arg0->unk18 += arg0->unk78 * arg1; +void obj_loop_torch_mist(Object *obj, s32 speed) { + obj->unk18 += obj->unk78 * speed; } void obj_init_effectbox(s32 arg0, s32 arg1) { @@ -1654,61 +1645,59 @@ void obj_loop_worldkey(Object *worldKeyObj, s32 speed) { typedef struct Object_64_8003DFCC { f32 unk0; s16 unk4; - char unk6[0x2]; - u8 unk8; - u8 unk9; - u8 unkA; + s8 unk6[0x2]; } Object_64_8003DFCC; -void obj_init_weaponballoon(Object *arg0, Object_64_8003DFCC *arg1) { +void obj_init_weaponballoon(Object *obj, LevelObjectEntry_WeaponBalloon *entry) { s32 cheats; - Object_64_8003DFCC *obj; - f32 temp; + Object_64_8003DFCC *obj64; + f32 scalef; - arg0->unk4C->unk14 = 2; - arg0->unk4C->unk11 = 4; - arg0->unk4C->unk10 = 0x14; + obj->unk4C->unk14 = 2; + obj->unk4C->unk11 = 4; + obj->unk4C->unk10 = 0x14; cheats = get_filtered_cheats(); if (cheats & CHEAT_ALL_BALLOONS_ARE_BLUE) { - arg1->unk9 = 0; + entry->balloonType = BALLOON_TYPE_BOOST; } else if (cheats & CHEAT_ALL_BALLOONS_ARE_RED) { - arg1->unk9 = 1; + entry->balloonType = BALLOON_TYPE_MISSILE; } else if (cheats & CHEAT_ALL_BALLOONS_ARE_GREEN) { - arg1->unk9 = 2; + entry->balloonType = BALLOON_TYPE_TRAP; } else if (cheats & CHEAT_ALL_BALLOONS_ARE_YELLOW) { - arg1->unk9 = 3; + entry->balloonType = BALLOON_TYPE_SHIELD; } else if (cheats & CHEAT_ALL_BALLOONS_ARE_RAINBOW) { - arg1->unk9 = 4; + entry->balloonType = BALLOON_TYPE_MAGNET; } - if (arg1->unk8 >= 6) { - arg1->unk8 = 0; + // I guess unk8 is unused? + if (entry->unk8 >= 6) { + entry->unk8 = 0; } - if (arg0->unk3A >= arg0->header->numberOfModelIds) { - arg0->unk3A = 0; + if (obj->unk3A >= obj->header->numberOfModelIds) { + obj->unk3A = 0; } - arg0->unk3A = arg1->unk9; - arg0->unk78 = arg0->unk3A; + obj->unk3A = entry->balloonType; + obj->unk78 = obj->unk3A; - temp = arg1->unkA & 0xFF; - if (temp < 10) { - temp = 10; + scalef = entry->scale & 0xFF; + if (scalef < 10) { + scalef = 10; } - temp /= 64; + scalef /= 64; - obj = (Object_64_8003DFCC*)arg0->unk64; + obj64 = (Object_64_8003DFCC*)obj->unk64; - arg0->scale = arg0->header->scale * temp; - obj->unk0 = arg0->scale; - obj->unk4 = 0; - arg0->unk7C.word = 0; + obj->scale = obj->header->scale * scalef; + obj64->unk0 = obj->scale; + obj64->unk4 = 0; + obj->unk7C.word = 0; if (get_filtered_cheats() & CHEAT_DISABLE_WEAPONS) { - gParticlePtrList_addObject(arg0); + gParticlePtrList_addObject(obj); } } @@ -1729,8 +1718,8 @@ void obj_init_weapon(Object *arg0, s32 arg1) { arg0->unk7C.word = 0; } -void obj_loop_weapon(Object *arg0) { - Object_64 *obj64 = arg0->unk64; +void obj_loop_weapon(Object *obj) { + Object_64 *obj64 = obj->unk64; switch (obj64->unk18) { case 0: case 1: diff --git a/src/object_functions.h b/src/object_functions.h index 926f9ad3..35203f06 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -14,16 +14,6 @@ typedef struct Object78_80033DD0 { s16 unk6; } Object78_80033DD0; -typedef struct unk80034530 { - u8 pad0[0x8]; - u8 unk8; - u8 unk9; - s8 unkA; - s8 unkB; - u8 unkC; - u8 unkD; -} unk80034530; - typedef struct unk80034B4C { u8 pad0[0x18]; s16 unk18; @@ -486,11 +476,11 @@ f32 func_800707F8(s16); // No idea where it's located s32 get_random_number_from_range(s32, s32); // Non Matching src/unknown_070110.c s32 func_8007066C(s32, s32); // Non Matching src/unknown_070110.c -void obj_init_fireball_octoweapon(Object *arg0, s32 arg1); -void obj_init_lasergun(Object *arg0, unk80034530 *arg1); -void obj_init_laserbolt(Object *arg0, s32 arg1); -void obj_init_torch_mist(Object *arg0, u8 *arg1); -void obj_loop_torch_mist(unk80034B4C *arg0, s32 arg1); +void obj_init_fireball_octoweapon(Object *obj, LevelObjectEntry_Fireball_Octoweapon *entry); +void obj_init_lasergun(Object *obj, LevelObjectEntry_Lasergun *entry); +void obj_init_laserbolt(Object *obj, LevelObjectEntry_Laserbolt *entry); +void obj_init_torch_mist(Object *obj, LevelObjectEntry_Torch_Mist *entry); +void obj_loop_torch_mist(Object *obj, s32 speed); void obj_init_effectbox(s32 arg0, s32 arg1); void obj_init_trophycab(Object *arg0, u8 *arg1); void obj_init_collectegg(Object *arg0, s32 arg1); @@ -502,14 +492,14 @@ void obj_init_airzippers_waterzippers(Object *arg0, LevelObjectEntry8003588C *ar void obj_init_unknown58(unk80035E20 *arg0, s32 arg1); void obj_loop_unknown58(Object *obj, s32 arg1); void obj_init_characterflag(Object *arg0, unk80035EF8 *arg1); -void obj_loop_characterflag(Object *obj, s32 arg1); +void obj_loop_characterflag(Object *obj, s32 speed); void obj_init_stopwatchman(Object *arg0, s32 arg1); void func_80036BCC(u16 arg0, s32 arg1); void obj_init_lavaspurt(unk80037578 *arg0, u8 *arg1); void obj_init_posarrow(unk80037624 *arg0, s32 arg1); void obj_init_animator(Object *arg0, LevelObjectEntry800376E0 *arg1, s32 arg2); -void obj_loop_animobject(s32 arg0, s32 arg1); -void obj_loop_dooropener(unk80037D08_arg0 *arg0, s32 arg1); +void obj_loop_animobject(s32 arg0, s32 speed); +void obj_loop_dooropener(unk80037D08_arg0 *arg0, s32 speed); void obj_init_overridepos(s32 arg0, s32 arg1); void func_80037D60(s32 arg0, s32 arg1); void obj_init_wizpigship(s32 arg0, s32 arg1); @@ -545,20 +535,20 @@ void func_8003AC3C(u16 arg0, s32 arg1); void obj_loop_gbparkwarden(s32 arg0, s32 arg1); f32 func_8003ACAC(void); void obj_init_checkpoint(Object *arg0, u8 *arg1, s32 arg2); -void obj_loop_checkpoint(s32 arg0, s32 arg1); +void obj_loop_checkpoint(s32 arg0, s32 speed); void obj_init_modechange(Object *obj, LevelObjectEntry8003AD34 *arg1); void obj_init_bonus(Object *obj, LevelObjectEntry8003AD34 *arg1); void obj_init_ttdoor(Object *obj, LevelObjectEntry8003C1E0 *arg1); void obj_init_bridge_whaleramp(Object *arg0, u8 *arg1); void obj_init_rampswitch(Object *arg0, u8 *arg1); -void obj_loop_rampswitch(Object *arg0, s32 arg1); +void obj_loop_rampswitch(Object *arg0, s32 speed); void obj_init_seamonster(s32 arg0, s32 arg1); -void obj_loop_seamonster(s32 arg0, s32 arg1); +void obj_loop_seamonster(s32 arg0, s32 speed); void obj_init_fogchanger(unk8003CF18 *arg0, u8 *arg1); void obj_init_skycontrol(Object *arg0, u8 *arg1); -void obj_loop_skycontrol(Object *arg0, s32 arg1); +void obj_loop_skycontrol(Object *arg0, s32 speed); void obj_init_ainode(s32 arg0, u8 *arg1); -void obj_loop_ainode(s32 arg0, s32 arg1); +void obj_loop_ainode(s32 arg0, s32 speed); void obj_init_treasuresucker(unk8003D038 *arg0, s8 *arg1); void obj_init_flycoin(s32 arg0, s32 arg1); void obj_init_coincreator(unk8003D3EC *arg0, s32 arg1); @@ -568,9 +558,9 @@ void obj_init_silvercoin(Object *obj, s32 arg1); void obj_init_worldkey(Object *obj, unk8003DE74 *arg1); void obj_loop_worldkey(Object *worldKeyObj, s32 speed); void obj_init_wballoonpop(s32 arg0, s32 arg1); -void obj_loop_wballoonpop(s32 arg0, s32 arg1); +void obj_loop_wballoonpop(s32 arg0, s32 speed); void obj_init_weapon(Object *arg0, s32 arg1); -void obj_loop_weapon(Object *arg0); +void obj_loop_weapon(Object *obj); void func_8003F0D0(void); void func_8003F0DC(void); void obj_init_audioline(Object *arg0, LevelObjectEntry8003FEF4 *arg1); @@ -578,27 +568,27 @@ void obj_init_audioreverb(Object *arg0, LevelObjectEntry8004001C *entry); void obj_init_texscroll(Object *obj, LevelObjectEntry800400A4 *arg1, s32 arg2); void obj_init_rgbalight(Object *arg0, s32 arg1, s32 arg2); void obj_init_buoy_pirateship(Object *arg0, s32 arg1, s32 arg2); -void obj_loop_buoy_pirateship(Object *arg0, s32 arg1); +void obj_loop_buoy_pirateship(Object *arg0, s32 speed); void obj_init_log(Object *arg0, LevelObjectEntry8004049C *arg1, s32 arg2); void obj_init_wavegenerator(s32 arg0, s32 arg1, s32 arg2); void obj_init_midichset(unk80042014_arg0 *arg0, unk80042014_arg1 *arg1); void obj_init_bubbler(Object *arg0, unk8004203C_arg1 *arg1); -void obj_loop_bubbler(Object *arg0, s32 arg1); +void obj_loop_bubbler(Object *arg0, s32 speed); void obj_init_boost(unk8004210C *arg0, s8 *arg1); void obj_init_unknown94(s32 arg0, s32 arg1, s32 arg2); -void obj_loop_unknown94(s32 arg0, s32 arg1); +void obj_loop_unknown94(s32 arg0, s32 speed); void obj_init_rangetrigger(s32 arg0, s32 arg1); -void obj_loop_rangetrigger(Object *obj, s32 arg1); +void obj_loop_rangetrigger(Object *obj, s32 speed); void obj_init_frog(Object *obj, LevelObjectEntry80042210 *arg1); -void obj_loop_pigrocketeer(s32 arg0, s32 arg1); +void obj_loop_pigrocketeer(s32 arg0, s32 speed); void obj_init_levelname(unk80042A1C *arg0, s8 *arg1); void obj_init_wizghosts(unk80042CD0 *arg0, s32 arg1); //Non Matching -void obj_loop_lavaspurt(Object *obj, s32 arg1); -void obj_loop_animator(Object *obj, s32 arg1); -void obj_loop_vehicleanim(Object *obj, s32 arg1); -void obj_loop_snowball(Object *obj, s32 arg1); -void obj_loop_goldenballoon(s32 arg0); +void obj_loop_lavaspurt(Object *obj, s32 speed); +void obj_loop_animator(Object *obj, s32 speed); +void obj_loop_vehicleanim(Object *obj, s32 speed); +void obj_loop_snowball(Object *obj, s32 speed); +void obj_loop_goldenballoon(s32 arg0, s32 speed); #endif diff --git a/src/unknown_00BC20.c b/src/unknown_00BC20.c index b5231cab..fabcecfd 100644 --- a/src/unknown_00BC20.c +++ b/src/unknown_00BC20.c @@ -1508,264 +1508,264 @@ void func_800235D0(s32 arg0) { GLOBAL_ASM("asm/non_matchings/unknown_00BC20/func_800235DC.s") -void run_object_init_func(Object *arg0, void *arg1) { - arg0->behaviorId = arg0->header->behaviorId; - switch (arg0->behaviorId - 1) { // Why the minus 1? +void run_object_init_func(Object *obj, void *entry) { + obj->behaviorId = obj->header->behaviorId; + switch (obj->behaviorId - 1) { // Why the minus 1? case 0: - obj_init_racer(arg0, arg1); + obj_init_racer(obj, entry); break; case 1: - obj_init_scenery(arg0, arg1); + obj_init_scenery(obj, (LevelObjectEntry_Scenery*)entry); break; case 2: - obj_init_fish(arg0, arg1); + obj_init_fish(obj, entry); break; case 3: - obj_init_animator(arg0, arg1); + obj_init_animator(obj, entry); break; case 5: - obj_init_smoke(arg0, arg1); + obj_init_smoke(obj, entry); break; case 24: - obj_init_unknown25(arg0, arg1); + obj_init_unknown25(obj, entry); break; case 21: - obj_init_bombexplosion(arg0, arg1); + obj_init_bombexplosion(obj, entry); break; case 6: - obj_init_exit(arg0, arg1); + obj_init_exit(obj, entry); break; case 7: - obj_init_audio(arg0, arg1); + obj_init_audio(obj, entry); break; case 8: case 18: - obj_init_audioline(arg0, arg1); + obj_init_audioline(obj, entry); break; case 26: - obj_init_audioreverb(arg0, arg1); + obj_init_audioreverb(obj, entry); break; case 9: - obj_init_cameracontrol(arg0, arg1); + obj_init_cameracontrol(obj, entry); break; case 10: - obj_init_setuppoint(arg0, arg1); + obj_init_setuppoint(obj, entry); break; case 11: - obj_init_dino_whale(arg0, arg1); + obj_init_dino_whale(obj, entry); break; case 12: - obj_init_checkpoint(arg0, arg1); + obj_init_checkpoint(obj, entry); break; case 29: - obj_init_modechange(arg0, arg1); + obj_init_modechange(obj, entry); break; case 40: - obj_init_bonus(arg0, arg1); + obj_init_bonus(obj, entry); break; case 13: - obj_init_door(arg0, arg1); + obj_init_door(obj, entry); break; case 110: - obj_init_ttdoor(arg0, arg1); + obj_init_ttdoor(obj, entry); break; case 14: - obj_init_fogchanger(arg0, arg1); + obj_init_fogchanger(obj, entry); break; case 15: - obj_init_ainode(arg0, arg1); + obj_init_ainode(obj, entry); break; case 16: - obj_init_weaponballoon(arg0, arg1); + obj_init_weaponballoon(obj, entry); break; case 22: - obj_init_wballoonpop(arg0, arg1); + obj_init_wballoonpop(obj, entry); break; case 4: case 17: - obj_init_weapon(arg0, arg1); + obj_init_weapon(obj, entry); break; case 25: - obj_init_skycontrol(arg0, arg1); + obj_init_skycontrol(obj, entry); break; case 27: - obj_init_torch_mist(arg0, arg1); + obj_init_torch_mist(obj, entry); break; case 28: - obj_init_texscroll(arg0, arg1); + obj_init_texscroll(obj, entry); break; case 30: - obj_init_stopwatchman(arg0, arg1); + obj_init_stopwatchman(obj, entry); break; case 31: - obj_init_coin(arg0, arg1); + obj_init_coin(obj, entry); break; case 32: - obj_init_rgbalight(arg0, arg1); + obj_init_rgbalight(obj, entry); break; case 35: - obj_init_buoy_pirateship(arg0, arg1); + obj_init_buoy_pirateship(obj, entry); break; case 66: - obj_init_log(arg0, arg1); + obj_init_log(obj, entry); break; case 36: - obj_init_weather(arg0, arg1); + obj_init_weather(obj, entry); break; case 37: - obj_init_bridge_whaleramp(arg0, arg1); + obj_init_bridge_whaleramp(obj, entry); break; case 38: - obj_init_rampswitch(arg0, arg1); + obj_init_rampswitch(obj, entry); break; case 39: - obj_init_seamonster(arg0, arg1); + obj_init_seamonster(obj, entry); break; case 42: - obj_init_lensflare(arg0, arg1); + obj_init_lensflare(obj, entry); break; case 43: - obj_init_lensflareswitch(arg0, arg1); + obj_init_lensflareswitch(obj, entry); break; case 44: - obj_init_collectegg(arg0, arg1); + obj_init_collectegg(obj, entry); break; case 45: - obj_init_eggcreator(arg0, arg1); + obj_init_eggcreator(obj, entry); break; case 46: - obj_init_characterflag(arg0, arg1); + obj_init_characterflag(obj, entry); break; case 48: - obj_init_animation(arg0, arg1); + obj_init_animation(obj, entry); break; case 51: - obj_init_infopoint(arg0, arg1); + obj_init_infopoint(obj, entry); break; case 54: - obj_init_trigger(arg0, arg1); + obj_init_trigger(obj, entry); break; case 56: case 92: - obj_init_airzippers_waterzippers(arg0, arg1); + obj_init_airzippers_waterzippers(obj, entry); break; case 57: - obj_init_unknown58(arg0, arg1); + obj_init_unknown58(obj, entry); break; case 58: - obj_init_wavegenerator(arg0, arg1); + obj_init_wavegenerator(obj, entry); break; case 60: - obj_init_butterfly(arg0, arg1); + obj_init_butterfly(obj, entry); break; case 61: - obj_init_parkwarden(arg0, arg1); + obj_init_parkwarden(obj, entry); break; case 63: - obj_init_worldkey(arg0, arg1); + obj_init_worldkey(obj, entry); break; case 64: - obj_init_coincreator(arg0, arg1); + obj_init_coincreator(obj, entry); break; case 65: - obj_init_treasuresucker(arg0, arg1); + obj_init_treasuresucker(obj, entry); break; case 67: - obj_init_lavaspurt(arg0, arg1); + obj_init_lavaspurt(obj, entry); break; case 68: - obj_init_posarrow(arg0, arg1); + obj_init_posarrow(obj, entry); break; case 69: case 102: - obj_init_hittester(arg0, arg1); + obj_init_hittester(obj, entry); break; case 71: case 94: case 103: - obj_init_dynamic_lighting_object(arg0, arg1); + obj_init_dynamic_lighting_object(obj, entry); break; case 95: case 100: - obj_init_unknown96(arg0, arg1); + obj_init_unknown96(obj, entry); break; case 96: case 101: - obj_init_snowball(arg0, arg1); + obj_init_snowball(obj, entry); break; case 70: - obj_init_midifade(arg0, arg1); + obj_init_midifade(obj, entry); break; case 111: - obj_init_midifadepoint(arg0, arg1); + obj_init_midifadepoint(obj, entry); break; case 117: - obj_init_midichset(arg0, arg1); + obj_init_midichset(obj, entry); break; case 72: - obj_init_effectbox(arg0, arg1); + obj_init_effectbox(obj, entry); break; case 73: - obj_init_trophycab(arg0, arg1); + obj_init_trophycab(obj, entry); break; case 74: - obj_init_bubbler(arg0, arg1); + obj_init_bubbler(obj, entry); break; case 75: - obj_init_flycoin(arg0, arg1); + obj_init_flycoin(obj, entry); break; case 76: - obj_init_goldenballoon(arg0, arg1); + obj_init_goldenballoon(obj, entry); break; case 77: - obj_init_laserbolt(arg0, arg1); + obj_init_laserbolt(obj, entry); break; case 78: - obj_init_lasergun(arg0, arg1); + obj_init_lasergun(obj, entry); break; case 81: - obj_init_groundzipper(arg0, arg1); + obj_init_groundzipper(obj, entry); break; case 82: - obj_init_overridepos(arg0, arg1); + obj_init_overridepos(obj, entry); break; case 83: - obj_init_wizpigship(arg0, arg1); + obj_init_wizpigship(obj, entry); break; case 88: - obj_init_boost(arg0, arg1); + obj_init_boost(obj, entry); break; case 87: - obj_init_silvercoin(arg0, arg1); + obj_init_silvercoin(obj, entry); break; case 89: - obj_init_wardensmoke(arg0, arg1); + obj_init_wardensmoke(obj, entry); break; case 93: - obj_init_unknown94(arg0, arg1); + obj_init_unknown94(obj, entry); break; case 97: - obj_init_teleport(arg0, arg1); + obj_init_teleport(obj, entry); break; case 98: case 99: - obj_init_lighthouse_rocketsignpost(arg0, arg1); + obj_init_lighthouse_rocketsignpost(obj, entry); break; case 104: - obj_init_rangetrigger(arg0, arg1); + obj_init_rangetrigger(obj, entry); break; case 107: case 115: - obj_init_fireball_octoweapon(arg0, arg1); + obj_init_fireball_octoweapon(obj, entry); break; case 108: - obj_init_frog(arg0, arg1); + obj_init_frog(obj, entry); break; case 109: - obj_init_silvercoin_adv2(arg0, arg1); + obj_init_silvercoin_adv2(obj, entry); break; case 116: - obj_init_levelname(arg0, arg1); + obj_init_levelname(obj, entry); break; } }