mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-18 01:14:19 +01:00
Functions for retrieving flag and script pointer given map object id
This commit is contained in:
parent
b263dcc7cf
commit
8456991837
@ -5,80 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start GetFieldObjectScriptPointerByLocalIdAndMap
|
|
||||||
@ u32 GetFieldObjectScriptPointerByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
|
|
||||||
GetFieldObjectScriptPointerByLocalIdAndMap: @ 808F004
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r2, 24
|
|
||||||
bl GetFieldObjectTemplateByLocalIdAndMap
|
|
||||||
ldr r0, [r0, 0x10]
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end GetFieldObjectScriptPointerByLocalIdAndMap
|
|
||||||
|
|
||||||
thumb_func_start GetFieldObjectScriptPointerByFieldObjectId
|
|
||||||
@ u32 GetFieldObjectScriptPointerByFieldObjectId(u8 fieldObjectId)
|
|
||||||
GetFieldObjectScriptPointerByFieldObjectId: @ 808F01C
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, =gMapObjects
|
|
||||||
lsls r2, r0, 3
|
|
||||||
adds r2, r0
|
|
||||||
lsls r2, 2
|
|
||||||
adds r2, r1
|
|
||||||
ldrb r0, [r2, 0x8]
|
|
||||||
ldrb r1, [r2, 0x9]
|
|
||||||
ldrb r2, [r2, 0xA]
|
|
||||||
bl GetFieldObjectScriptPointerByLocalIdAndMap
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end GetFieldObjectScriptPointerByFieldObjectId
|
|
||||||
|
|
||||||
thumb_func_start GetFieldObjectFlagIdByLocalIdAndMap
|
|
||||||
@ u16 GetFieldObjectFlagIdByLocalIdAndMap(u8 localId, u8 mapId, u8 mapGroupId)
|
|
||||||
GetFieldObjectFlagIdByLocalIdAndMap: @ 808F040
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r2, 24
|
|
||||||
bl GetFieldObjectTemplateByLocalIdAndMap
|
|
||||||
ldrh r0, [r0, 0x14]
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end GetFieldObjectFlagIdByLocalIdAndMap
|
|
||||||
|
|
||||||
thumb_func_start GetFieldObjectFlagIdByFieldObjectId
|
|
||||||
@ u16 GetFieldObjectFlagIdByFieldObjectId(u8 fieldObjectId)
|
|
||||||
GetFieldObjectFlagIdByFieldObjectId: @ 808F058
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, =gMapObjects
|
|
||||||
lsls r2, r0, 3
|
|
||||||
adds r2, r0
|
|
||||||
lsls r2, 2
|
|
||||||
adds r2, r1
|
|
||||||
ldrb r0, [r2, 0x8]
|
|
||||||
ldrb r1, [r2, 0x9]
|
|
||||||
ldrb r2, [r2, 0xA]
|
|
||||||
bl GetFieldObjectFlagIdByLocalIdAndMap
|
|
||||||
lsls r0, 16
|
|
||||||
lsrs r0, 16
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end GetFieldObjectFlagIdByFieldObjectId
|
|
||||||
|
|
||||||
thumb_func_start sub_808F080
|
thumb_func_start sub_808F080
|
||||||
sub_808F080: @ 808F080
|
sub_808F080: @ 808F080
|
||||||
push {lr}
|
push {lr}
|
||||||
|
@ -1490,3 +1490,23 @@ void FieldObjectSetDirection(struct MapObject *mapObject, u8 direction)
|
|||||||
}
|
}
|
||||||
mapObject->placeholder18 = direction;
|
mapObject->placeholder18 = direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const u8 *GetFieldObjectScriptPointerByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
|
||||||
|
{
|
||||||
|
return GetFieldObjectTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->script;
|
||||||
|
}
|
||||||
|
|
||||||
|
const u8 *GetFieldObjectScriptPointerByFieldObjectId(u8 mapObjectId)
|
||||||
|
{
|
||||||
|
return GetFieldObjectScriptPointerByLocalIdAndMap(gMapObjects[mapObjectId].localId, gMapObjects[mapObjectId].mapNum, gMapObjects[mapObjectId].mapGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u16 GetFieldObjectFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
|
||||||
|
{
|
||||||
|
return GetFieldObjectTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->flagId;
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 GetFieldObjectFlagIdByFieldObjectId(u8 mapObjectId)
|
||||||
|
{
|
||||||
|
return GetFieldObjectFlagIdByLocalIdAndMap(gMapObjects[mapObjectId].localId, gMapObjects[mapObjectId].mapNum, gMapObjects[mapObjectId].mapGroup);
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user