summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-04-23 22:49:23 +0300
committerTal Hayon <talhayon1@gmail.com>2022-04-23 22:49:23 +0300
commita4e7f0b2e6fefa89b363373e854544ec8941229f (patch)
tree64c851fd7db31e71eba44a68b39dafdac0dd2a37 /src
parent9ca86abfb1243ce17b90e8eaf6959c46ad03e495 (diff)
Match sub_0801AA58
Diffstat (limited to 'src')
-rw-r--r--src/beanstalkSubtask.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c
index 6b18442d..9e29de8e 100644
--- a/src/beanstalkSubtask.c
+++ b/src/beanstalkSubtask.c
@@ -363,10 +363,10 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A9F0.inc",
}
END_NONMATCH
-NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AA58.inc",
- bool32 sub_0801AA58(Entity* this, u32 param_2, u32 param_3)) {
+bool32 sub_0801AA58(Entity* this, u32 param_2, u32 param_3) {
LayerStruct* layer;
Entity* object;
+ u32 temp;
layer = GetLayerByIndex(this->collisionLayer);
if (((layer->collisionData[param_2 + gUnk_080B4488[param_3 >> 3]] == 0) ||
@@ -375,12 +375,12 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AA58.inc",
object = CreateObject(PUSHED_BLOCK, 0, 0);
if (object != NULL) {
object->direction = param_3;
- object->x.HALF.HI = ((param_2 & 0x3f) * 0x10 + 8) + gRoomControls.origin_x;
+ object->x.HALF.HI = ((((param_2)&0x3f) << 4) + 8) + gRoomControls.origin_x;
object->y.HALF.HI = (((param_2 & 0xfc0) >> 2) + 8) + gRoomControls.origin_y;
object->collisionLayer = this->collisionLayer;
gPlayerState.pushedObject = 0xa0;
gPlayerState.queued_action = 5;
- gPlayerState.flags |= PL_BUSY;
+ gPlayerState.flags |= 1;
this->x.HALF.LO = 0;
this->y.HALF.LO = 0;
this->direction = param_3;
@@ -389,7 +389,6 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801AA58.inc",
}
return FALSE;
}
-END_NONMATCH
ASM_FUNC("asm/non_matching/beanstalkSubtask/sub_0801AB08.inc", void sub_0801AB08(u16* a, LayerStruct* layer))