mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-27 15:00:36 +00:00
NO3&NP3&RWRP CreateEntityWhenIn duplicates (#190)
There are numerous duplicates of the `CreateEntityWhenInVerticalRange` and `CreateEntityWhenInHorizontalRange` functions. This pull request matches the duplicates identified in overlays NO3, NP3, and RWRP: - NO3 - `func_801C3500` - Renamed to `CreateEntityWhenInVerticalRange` - NO3 - `func_801C3618` - Renamed to `CreateEntityWhenInHorizontalRange` - NP3 - `func_801BAD70` - Renamed to `CreateEntityWhenInVerticalRange` - NP3 - `func_801BAE88` - Renamed to `CreateEntityWhenInHorizontalRange` - RWRP - `func_8018BE1C` - Renamed to `CreateEntityWhenInVerticalRange` - RWRP - `func_8018BF34` - Renamed to `CreateEntityWhenInHorizontalRange`
This commit is contained in:
parent
a5292eac71
commit
7c51a5f6ac
@ -16,6 +16,8 @@ Random = 0x801C184C;
|
|||||||
Update = 0x801C187C;
|
Update = 0x801C187C;
|
||||||
EntityNumericDamage = 0x801C2D98;
|
EntityNumericDamage = 0x801C2D98;
|
||||||
CreateEntityFromLayout = 0x801C343C;
|
CreateEntityFromLayout = 0x801C343C;
|
||||||
|
CreateEntityWhenInVerticalRange = 0x801C3500;
|
||||||
|
CreateEntityWhenInHorizontalRange = 0x801C3618;
|
||||||
InitRoomEntities = 0x801C3C98;
|
InitRoomEntities = 0x801C3C98;
|
||||||
CreateEntityFromCurrentEntity = 0x801C3EC4;
|
CreateEntityFromCurrentEntity = 0x801C3EC4;
|
||||||
CreateEntityFromEntity = 0x801C3F38;
|
CreateEntityFromEntity = 0x801C3F38;
|
||||||
|
@ -30,6 +30,8 @@ Random = 0x801B90BC;
|
|||||||
Update = 0x801B90EC;
|
Update = 0x801B90EC;
|
||||||
EntityNumericDamage = 0x801BA608;
|
EntityNumericDamage = 0x801BA608;
|
||||||
CreateEntityFromLayout = 0x801BACAC;
|
CreateEntityFromLayout = 0x801BACAC;
|
||||||
|
CreateEntityWhenInVerticalRange = 0x801BAD70;
|
||||||
|
CreateEntityWhenInHorizontalRange = 0x801BAE88;
|
||||||
InitRoomEntities = 0x801BB508;
|
InitRoomEntities = 0x801BB508;
|
||||||
CreateEntityFromCurrentEntity = 0x801BB734;
|
CreateEntityFromCurrentEntity = 0x801BB734;
|
||||||
CreateEntityFromEntity = 0x801BB7A8;
|
CreateEntityFromEntity = 0x801BB7A8;
|
||||||
|
@ -2,3 +2,5 @@ g_SpriteBanks = 0x80180040;
|
|||||||
g_Rooms = 0x801811AC;
|
g_Rooms = 0x801811AC;
|
||||||
Update = 0x8018A198;
|
Update = 0x8018A198;
|
||||||
func_801951F0 = 0x801951F0;
|
func_801951F0 = 0x801951F0;
|
||||||
|
CreateEntityWhenInVerticalRange = 0x8018BE1C;
|
||||||
|
CreateEntityWhenInHorizontalRange = 0x8018BF34;
|
||||||
|
@ -409,9 +409,81 @@ void CreateEntityFromLayout(Entity* entity, LayoutObject* initDesc) {
|
|||||||
entity->unk68 = (initDesc->objectId >> 0xA) & 7;
|
entity->unk68 = (initDesc->objectId >> 0xA) & 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/no3/nonmatchings/3E134", func_801C3500);
|
void CreateEntityWhenInVerticalRange(LayoutObject* layoutObj) {
|
||||||
|
s16 yClose;
|
||||||
|
s16 yFar;
|
||||||
|
s16 posY;
|
||||||
|
Entity* entity;
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/no3/nonmatchings/3E134", func_801C3618);
|
posY = g_Camera.posY.i.hi;
|
||||||
|
yClose = posY - 0x40;
|
||||||
|
yFar = posY + 0x120;
|
||||||
|
if (yClose < 0) {
|
||||||
|
yClose = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
posY = layoutObj->posY;
|
||||||
|
if (posY < yClose) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (yFar < posY) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (layoutObj->objectId & 0xE000) {
|
||||||
|
case 0x0:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
if (entity->objectId == 0) {
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
break;
|
||||||
|
case 0xA000:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateEntityWhenInHorizontalRange(LayoutObject* layoutObj) {
|
||||||
|
s16 xClose;
|
||||||
|
s16 xFar;
|
||||||
|
s16 posX;
|
||||||
|
Entity* entity;
|
||||||
|
|
||||||
|
posX = g_Camera.posX.i.hi;
|
||||||
|
xClose = posX - 0x40;
|
||||||
|
xFar = posX + 0x140;
|
||||||
|
if (xClose < 0) {
|
||||||
|
xClose = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
posX = layoutObj->posX;
|
||||||
|
if (posX < xClose) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xFar < posX) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (layoutObj->objectId & 0xE000) {
|
||||||
|
case 0x0:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
if (entity->objectId == 0) {
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
break;
|
||||||
|
case 0xA000:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void func_801C3730(s16 arg0) {
|
void func_801C3730(s16 arg0) {
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -1229,9 +1229,81 @@ void CreateEntityFromLayout(Entity* entity, LayoutObject* initDesc) {
|
|||||||
entity->unk68 = (initDesc->objectId >> 0xA) & 7;
|
entity->unk68 = (initDesc->objectId >> 0xA) & 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/np3/nonmatchings/3246C", func_801BAD70);
|
void CreateEntityWhenInVerticalRange(LayoutObject* layoutObj) {
|
||||||
|
s16 yClose;
|
||||||
|
s16 yFar;
|
||||||
|
s16 posY;
|
||||||
|
Entity* entity;
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/np3/nonmatchings/3246C", func_801BAE88);
|
posY = g_Camera.posY.i.hi;
|
||||||
|
yClose = posY - 0x40;
|
||||||
|
yFar = posY + 0x120;
|
||||||
|
if (yClose < 0) {
|
||||||
|
yClose = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
posY = layoutObj->posY;
|
||||||
|
if (posY < yClose) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (yFar < posY) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (layoutObj->objectId & 0xE000) {
|
||||||
|
case 0x0:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
if (entity->objectId == 0) {
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
break;
|
||||||
|
case 0xA000:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateEntityWhenInHorizontalRange(LayoutObject* layoutObj) {
|
||||||
|
s16 xClose;
|
||||||
|
s16 xFar;
|
||||||
|
s16 posX;
|
||||||
|
Entity* entity;
|
||||||
|
|
||||||
|
posX = g_Camera.posX.i.hi;
|
||||||
|
xClose = posX - 0x40;
|
||||||
|
xFar = posX + 0x140;
|
||||||
|
if (xClose < 0) {
|
||||||
|
xClose = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
posX = layoutObj->posX;
|
||||||
|
if (posX < xClose) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xFar < posX) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (layoutObj->objectId & 0xE000) {
|
||||||
|
case 0x0:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
if (entity->objectId == 0) {
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
break;
|
||||||
|
case 0xA000:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
CreateEntityFromLayout(entity, layoutObj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/np3/nonmatchings/3246C", func_801BAFA0);
|
INCLUDE_ASM("asm/us/st/np3/nonmatchings/3246C", func_801BAFA0);
|
||||||
|
|
||||||
|
@ -84,4 +84,4 @@ extern s32 D_8018268C;
|
|||||||
extern s32 D_801826A4;
|
extern s32 D_801826A4;
|
||||||
extern PfnEntityUpdate PfnEntityUpdates[];
|
extern PfnEntityUpdate PfnEntityUpdates[];
|
||||||
LayoutObject* D_801D276C;
|
LayoutObject* D_801D276C;
|
||||||
extern u16 D_801D33F4[];
|
extern u16 D_801D33F4[];
|
||||||
|
@ -28,9 +28,81 @@ INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018B6B4);
|
|||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018BD58);
|
INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018BD58);
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018BE1C);
|
void CreateEntityWhenInVerticalRange(LayoutObject* layoutObj) {
|
||||||
|
s16 yClose;
|
||||||
|
s16 yFar;
|
||||||
|
s16 posY;
|
||||||
|
Entity* entity;
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018BF34);
|
posY = g_Camera.posY.i.hi;
|
||||||
|
yClose = posY - 0x40;
|
||||||
|
yFar = posY + 0x120;
|
||||||
|
if (yClose < 0) {
|
||||||
|
yClose = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
posY = layoutObj->posY;
|
||||||
|
if (posY < yClose) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (yFar < posY) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (layoutObj->objectId & 0xE000) {
|
||||||
|
case 0x0:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
if (entity->objectId == 0) {
|
||||||
|
func_8018BD58(entity, layoutObj);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
break;
|
||||||
|
case 0xA000:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
func_8018BD58(entity, layoutObj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateEntityWhenInHorizontalRange(LayoutObject* layoutObj) {
|
||||||
|
s16 xClose;
|
||||||
|
s16 xFar;
|
||||||
|
s16 posX;
|
||||||
|
Entity* entity;
|
||||||
|
|
||||||
|
posX = g_Camera.posX.i.hi;
|
||||||
|
xClose = posX - 0x40;
|
||||||
|
xFar = posX + 0x140;
|
||||||
|
if (xClose < 0) {
|
||||||
|
xClose = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
posX = layoutObj->posX;
|
||||||
|
if (posX < xClose) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (xFar < posX) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (layoutObj->objectId & 0xE000) {
|
||||||
|
case 0x0:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
if (entity->objectId == 0) {
|
||||||
|
func_8018BD58(entity, layoutObj);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 0x8000:
|
||||||
|
break;
|
||||||
|
case 0xA000:
|
||||||
|
entity = &D_800762D8[(u8)layoutObj->objectRoomIndex];
|
||||||
|
func_8018BD58(entity, layoutObj);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018C04C);
|
INCLUDE_ASM("asm/us/st/rwrp/nonmatchings/8DF0", func_8018C04C);
|
||||||
|
|
||||||
|
@ -10,4 +10,5 @@ extern s16 D_80180A94[];
|
|||||||
extern ObjInit2 D_80181134[];
|
extern ObjInit2 D_80181134[];
|
||||||
extern LayoutObject* D_80195A30;
|
extern LayoutObject* D_80195A30;
|
||||||
extern LayoutObject* D_80195A34;
|
extern LayoutObject* D_80195A34;
|
||||||
|
void func_8018BD58(Entity*, LayoutObject*);
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue
Block a user