mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-10-06 18:13:30 +00:00
Overlay NO0: Deduplicate and split collision data (#1710)
This commit is contained in:
parent
74ce2c49b8
commit
b9f02684ee
@ -40,7 +40,11 @@ segments:
|
||||
subsegments:
|
||||
- [0x0, data]
|
||||
- [0x113C, .data, st_update] # UNK_Invincibility0 data
|
||||
- [0x1168, data]
|
||||
- [0x1168, .data, collision]
|
||||
- [0x1528, .data, e_red_door]
|
||||
- [0x1540, data]
|
||||
- [0x164C, .data, st_common] # g_SineTable
|
||||
- [0x184C, data]
|
||||
- [0x41368, .rodata, first_c_file]
|
||||
- [0x4137C, .rodata, e_red_door]
|
||||
- [0x41394, .rodata, e_collect]
|
||||
|
@ -11,6 +11,7 @@ D_80180C6A = 0x80180C02;
|
||||
D_80180C70 = 0x80180C08;
|
||||
D_80180C88 = 0x80180C38;
|
||||
D_80180CA0 = 0x80180C50;
|
||||
g_eRedDoorTiles = 0x80180C5C;
|
||||
UNK_Invincibility0 = 0x8018113C;
|
||||
g_testCollEnemyLookup = 0x80181168;
|
||||
g_testCollLuckCutoff = 0x80181488;
|
||||
@ -94,7 +95,7 @@ GetSine = 0x801C80FC;
|
||||
SetEntityVelocityFromAngle = 0x801C8118;
|
||||
Ratan2Shifted = 0x801C8184;
|
||||
GetAngleBetweenEntitiesShifted = 0x801C81BC;
|
||||
GetAnglePointToEntity = 0x801C8204;
|
||||
GetAnglePointToEntityShifted = 0x801C8204;
|
||||
AdjustValueWithinThreshold = 0x801C824C;
|
||||
UnkEntityFunc0 = 0x801C82A4;
|
||||
Ratan2 = 0x801C8330;
|
||||
|
@ -1,6 +1,2 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/collision", HitDetection);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/collision", EntityDamageDisplay);
|
||||
#include "../collision.h"
|
||||
|
@ -1,6 +1,2 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/e_red_door", EntityIsNearPlayer);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/e_red_door", EntityRedDoor);
|
||||
#include "../e_red_door.h"
|
||||
|
65
src/st/no0/no0.h
Normal file
65
src/st/no0/no0.h
Normal file
@ -0,0 +1,65 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "stage.h"
|
||||
|
||||
#define OVL_EXPORT(x) NO0_##x
|
||||
|
||||
void EntityUnkId14(Entity* entity);
|
||||
void EntityUnkId15(Entity* entity);
|
||||
|
||||
typedef enum EntityIDs {
|
||||
/* 0x00 */ E_NONE,
|
||||
/* 0x01 */ E_BREAKABLE,
|
||||
/* 0x02 */ E_EXPLOSION,
|
||||
/* 0x03 */ E_PRIZE_DROP,
|
||||
/* 0x04 */ E_NUMERIC_DAMAGE,
|
||||
/* 0x05 */ E_RED_DOOR,
|
||||
/* 0x06 */ E_INTENSE_EXPLOSION,
|
||||
/* 0x07 */ E_SOUL_STEAL_ORB,
|
||||
/* 0x08 */ E_ROOM_FOREGROUND,
|
||||
/* 0x09 */ E_STAGE_NAME_POPUP,
|
||||
/* 0x0A */ E_EQUIP_ITEM_DROP,
|
||||
/* 0x0B */ E_RELIC_ORB,
|
||||
/* 0x0C */ E_HEART_DROP,
|
||||
/* 0x0D */ E_ENEMY_BLOOD,
|
||||
/* 0x0E */ E_SAVE_GAME_POPUP,
|
||||
/* 0x0F */ E_DUMMY_0F,
|
||||
/* 0x10 */ E_DUMMY_10,
|
||||
|
||||
/* 0x11 */ E_ID_11 = 0x11,
|
||||
/* 0x14 */ E_ID_14 = 0x14,
|
||||
/* 0x15 */ E_FIREBALL = 0x15,
|
||||
/* 0x17 */ E_BG_LIGHTNING = 0x17,
|
||||
/* 0x1E */ E_CAVERN_DOOR_LEVER_UNK0 = 0x1E,
|
||||
/* 0x27 */ E_FALLING_ROCK_2 = 0x27,
|
||||
/* 0x2E */ E_ID_2E = 0x2E,
|
||||
/* 0x30 */ E_ID_30 = 0x30,
|
||||
/* 0x31 */ E_ID_31,
|
||||
/* 0x32 */ E_ID_32,
|
||||
/* 0x33 */ E_ID_33,
|
||||
/* 0x35 */ E_SPLASH_WATER = 0x35,
|
||||
/* 0x36 */ E_SURFACING_WATER,
|
||||
/* 0x37 */ E_SIDE_WATER_SPLASH,
|
||||
/* 0x38 */ E_SMALL_WATER_DROP,
|
||||
/* 0x39 */ E_WATER_DROP,
|
||||
/* 0x3A */ E_MERMAN_SPAWNER_3A,
|
||||
/* 0x3B */ E_MERMAN_JUMP_WATER,
|
||||
/* 0x3C */ E_MERMAN2_UNK1,
|
||||
/* 0x3D */ E_MEDIUM_WATER_SPLASH,
|
||||
/* 0x3E */ E_MERMAN2_SPIT_FIRE,
|
||||
/* 0x3F */ E_MERMAN2_DYING,
|
||||
/* 0x40 */ E_MERMAN2_JUMP_AIR,
|
||||
/* 0x41 */ E_MERMAN_SPAWNER_41,
|
||||
/* 0x42 */ E_MERMAN_SPIT_FIRE,
|
||||
/* 0x43 */ E_MERMAN_JUMP_AIR,
|
||||
/* 0x44 */ E_MERMAN_DYING,
|
||||
/* 0x47 */ E_BONE_SCIMITAR_HEAD = 0x47,
|
||||
/* 0x4C */ E_ZOMBIE = 0x4C,
|
||||
/* 0x59 */ E_ID_59 = 0x59,
|
||||
/* 0x5B */ E_DEATH_5B = 0x5B,
|
||||
/* 0x5D */ E_FALLING_ROCK = 0x5D,
|
||||
/* 0x5E */ E_DEATH_5E,
|
||||
/* 0x60 */ E_FLYING_OWL_UNK60 = 0x60,
|
||||
/* 0x62 */ E_WARG_EXP_OPAQUE = 0x62,
|
||||
} EntityIDs;
|
||||
|
||||
extern s16 g_SineTable[];
|
@ -1,70 +1,3 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
#include "common.h"
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", DestroyEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", DestroyEntitiesFromIndex);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", PreventEntityFromRespawning);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", AnimateEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", UnkAnimFunc);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetDistanceToPlayerX);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetDistanceToPlayerY);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetSideToPlayer);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", MoveEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", FallEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", UnkCollisionFunc3);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", UnkCollisionFunc2);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", AllocEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetSineScaled);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetSine);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", SetEntityVelocityFromAngle);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", Ratan2Shifted);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetAngleBetweenEntitiesShifted);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetAnglePointToEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", AdjustValueWithinThreshold);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", UnkEntityFunc0);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", Ratan2);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetAngleBetweenEntities);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", func_us_801C8398);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetNormalizedAngle);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", SetStep);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", SetSubStep);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", EntityExplosionSpawn);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", InitializeEntity);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", EntityDummy);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", UnkCollisionFunc);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", CheckFieldCollision);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", GetPlayerCollisionWith);
|
||||
|
||||
INCLUDE_ASM("st/no0/nonmatchings/st_common", ReplaceBreakableWithItemDrop);
|
||||
#include "no0.h"
|
||||
#include "../st_common.h"
|
||||
|
Loading…
Reference in New Issue
Block a user