summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/shop.s326
-rw-r--r--include/shop.h2
-rw-r--r--src/shop.c368
3 files changed, 376 insertions, 320 deletions
diff --git a/asm/shop.s b/asm/shop.s
index 8b4b0b00d..91d6cafb8 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -6,320 +6,6 @@
.text
- thumb_func_start sub_80B3420
-sub_80B3420: @ 80B3420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r1, sp
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x3
- strh r0, [r1]
- ldrh r0, [r4]
- subs r0, 0x3
- strh r0, [r4]
- movs r1, 0
- ldr r0, _080B34A8 @ =0x000001ff
- mov r10, r0
- ldr r2, _080B34AC @ =gMapHeader
- mov r9, r2
-_080B3452:
- movs r4, 0
- lsls r1, 16
- mov r8, r1
- asrs r7, r1, 16
-_080B345A:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r6
- mov r2, sp
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- adds r1, r7
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r7, 0x5
- beq _080B34D0
- cmp r6, 0x6
- beq _080B34D0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r6
- mov r2, sp
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- adds r1, r7
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r5, r10
- bhi _080B34B0
- mov r1, r9
- ldr r0, [r1]
- ldr r0, [r0, 0x10]
- lsls r1, r5, 4
- ldr r2, [r0, 0xC]
- adds r2, r1
- b _080B34C0
- .align 2, 0
-_080B34A8: .4byte 0x000001ff
-_080B34AC: .4byte gMapHeader
-_080B34B0:
- mov r2, r9
- ldr r0, [r2]
- ldr r1, [r0, 0x14]
- ldr r2, _080B34CC @ =0xfffffe00
- adds r0, r5, r2
- lsls r0, 4
- ldr r2, [r1, 0xC]
- adds r2, r0
-_080B34C0:
- adds r0, r6, 0
- adds r1, r7, 0
- bl BuyMenuDrawMapMetatile
- b _080B3506
- .align 2, 0
-_080B34CC: .4byte 0xfffffe00
-_080B34D0:
- cmp r5, r10
- bhi _080B34EC
- asrs r0, r4, 16
- mov r3, r9
- ldr r1, [r3]
- ldr r1, [r1, 0x10]
- lsls r3, r5, 4
- ldr r2, [r1, 0xC]
- adds r2, r3
- mov r3, r8
- asrs r1, r3, 16
- bl sub_80B33D0
- b _080B3506
-_080B34EC:
- asrs r0, r4, 16
- mov r2, r9
- ldr r1, [r2]
- ldr r2, [r1, 0x14]
- ldr r3, _080B354C @ =0xfffffe00
- adds r1, r5, r3
- lsls r1, 4
- ldr r2, [r2, 0xC]
- adds r2, r1
- mov r3, r8
- asrs r1, r3, 16
- bl sub_80B33D0
-_080B3506:
- cmp r7, 0
- bne _080B3520
- asrs r1, r4, 16
- cmp r1, 0
- beq _080B3520
- cmp r1, 0x6
- beq _080B3520
- lsls r1, 17
- asrs r1, 16
- ldr r0, _080B3550 @ =gBGTilemapBuffers + 0x800
- movs r2, 0x40
- bl sub_80B32EC
-_080B3520:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _080B345A
- adds r0, r1, 0
- add r0, r8
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080B3452
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B354C: .4byte 0xfffffe00
-_080B3550: .4byte gBGTilemapBuffers + 0x800
- thumb_func_end sub_80B3420
-
- thumb_func_start BuyMenuDrawMapGraphics
-BuyMenuDrawMapGraphics: @ 80B3554
- push {lr}
- bl sub_80F9020
- bl sub_80B356C
- bl sub_80B368C
- bl sub_80B3420
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDrawMapGraphics
-
- thumb_func_start sub_80B356C
-sub_80B356C: @ 80B356C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r5, 0
- ldr r2, _080B3674 @ =gUnknown_020386A4
- movs r1, 0x10
-_080B3598:
- lsls r0, r5, 3
- adds r0, r2
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _080B3598
- movs r5, 0
- ldr r7, _080B3678 @ =gUnknown_020386AA
- subs r1, r7, 0x6
- mov r9, r1
-_080B35B0:
- movs r4, 0
- adds r2, r5, 0x1
- mov r10, r2
-_080B35B6:
- mov r1, sp
- ldr r3, _080B367C @ =0x0000fffd
- adds r0, r3, 0
- ldrh r1, [r1]
- adds r0, r1
- adds r0, r4
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _080B3680 @ =0x0000fffe
- adds r1, r2, 0
- mov r3, sp
- ldrh r3, [r3, 0x2]
- adds r1, r3
- adds r1, r5
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x10
- beq _080B3650
- mov r0, r8
- lsls r3, r0, 3
- mov r1, r9
- adds r0, r3, r1
- movs r6, 0
- strh r2, [r0]
- mov r0, r9
- adds r0, 0x2
- adds r0, r3, r0
- strh r4, [r0]
- ldr r1, _080B3684 @ =gUnknown_020386A8
- adds r0, r3, r1
- strh r5, [r0]
- ldr r1, _080B3688 @ =gMapObjects
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x1
- bne _080B3616
- adds r0, r3, r7
- strh r6, [r0]
-_080B3616:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x2
- bne _080B3626
- adds r1, r3, r7
- movs r0, 0x1
- strh r0, [r1]
-_080B3626:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x3
- bne _080B3636
- adds r1, r3, r7
- movs r0, 0x2
- strh r0, [r1]
-_080B3636:
- ldrb r0, [r2, 0x18]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- bne _080B3646
- adds r1, r3, r7
- movs r0, 0x3
- strh r0, [r1]
-_080B3646:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_080B3650:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080B35B6
- mov r2, r10
- lsls r0, r2, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _080B35B0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B3674: .4byte gUnknown_020386A4
-_080B3678: .4byte gUnknown_020386AA
-_080B367C: .4byte 0x0000fffd
-_080B3680: .4byte 0x0000fffe
-_080B3684: .4byte gUnknown_020386A8
-_080B3688: .4byte gMapObjects
- thumb_func_end sub_80B356C
-
thumb_func_start sub_80B368C
sub_80B368C: @ 80B368C
push {r4-r7,lr}
@@ -332,8 +18,8 @@ sub_80B368C: @ 80B368C
mov r8, r0
ldr r7, _080B3714 @ =gMapObjects
_080B369E:
- lsls r4, r5, 3
- adds r1, r4, r6
+ lsls r4, r5, 3 (i * 8)
+ adds r1, r4, r6 (gUnknown_020386A4 + (i * 8))
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0x10
@@ -344,9 +30,9 @@ _080B369E:
lsls r0, 2
adds r0, r7
ldrb r0, [r0, 0x5]
- adds r1, r6, 0x2
+ adds r1, r6, 0x2
adds r1, r4, r1
- ldrh r2, [r1]
+ ldrh r2, [r1] (gUnknown_020386A4[i].)
lsls r2, 4
adds r2, 0x8
lsls r2, 16
@@ -370,8 +56,8 @@ _080B369E:
lsls r2, 2
ldr r0, _080B371C @ =gSprites
adds r2, r0
- mov r1, r8
- adds r0, r4, r1
+ mov r1, r8 (r1 = gUnknown_020386A4 + 6)
+ adds r0, r4, r1 ( gUnknown_020386A4 + 6 + )
ldrb r1, [r0]
adds r0, r2, 0
bl StartSpriteAnim
diff --git a/include/shop.h b/include/shop.h
index cca6091c9..414bd628f 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -14,5 +14,7 @@ void sub_80B40E8(u8);
void CreatePokemartMenu(void *);
void CreateDecorationShop1Menu(void *);
void CreateDecorationShop2Menu(void *);
+void sub_80B356C(void);
+void sub_80B368C(void);
#endif // GUARD_SHOP_H
diff --git a/src/shop.c b/src/shop.c
index 5cc1f276e..b832b5a26 100644
--- a/src/shop.c
+++ b/src/shop.c
@@ -16,6 +16,7 @@
#include "task.h"
#include "tv.h"
#include "unknown_task.h"
+#include "field_map_obj.h"
struct UnknownShopStruct
{
@@ -349,3 +350,370 @@ void sub_80B33D0(s16 var1, int var2, u16 *var3)
BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[3], offset1, offset2, var3);
BuyMenuDrawMapMetatileLayer(gBGTilemapBuffers[2], offset1, offset2, var3 + 4);
}
+
+// no. for loop too hard.
+__attribute__((naked))
+void sub_80B3420() // dont know args
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x4\n\
+ mov r4, sp\n\
+ adds r4, 0x2\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ bl GetXYCoordsOneStepInFrontOfPlayer\n\
+ mov r1, sp\n\
+ mov r0, sp\n\
+ ldrh r0, [r0]\n\
+ subs r0, 0x3\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r4]\n\
+ subs r0, 0x3\n\
+ strh r0, [r4]\n\
+ movs r1, 0\n\
+ ldr r0, _080B34A8 @ =0x000001ff\n\
+ mov r10, r0\n\
+ ldr r2, _080B34AC @ =gMapHeader\n\
+ mov r9, r2\n\
+_080B3452:\n\
+ movs r4, 0\n\
+ lsls r1, 16\n\
+ mov r8, r1\n\
+ asrs r7, r1, 16\n\
+_080B345A:\n\
+ mov r0, sp\n\
+ movs r3, 0\n\
+ ldrsh r0, [r0, r3]\n\
+ lsls r4, 16\n\
+ asrs r6, r4, 16\n\
+ adds r0, r6\n\
+ mov r2, sp\n\
+ movs r3, 0x2\n\
+ ldrsh r1, [r2, r3]\n\
+ adds r1, r7\n\
+ bl MapGridGetMetatileIdAt\n\
+ lsls r0, 16\n\
+ lsrs r5, r0, 16\n\
+ cmp r7, 0x5\n\
+ beq _080B34D0\n\
+ cmp r6, 0x6\n\
+ beq _080B34D0\n\
+ mov r0, sp\n\
+ movs r1, 0\n\
+ ldrsh r0, [r0, r1]\n\
+ adds r0, r6\n\
+ mov r2, sp\n\
+ movs r3, 0x2\n\
+ ldrsh r1, [r2, r3]\n\
+ adds r1, r7\n\
+ bl MapGridGetMetatileLayerTypeAt\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r5, r10\n\
+ bhi _080B34B0\n\
+ mov r1, r9\n\
+ ldr r0, [r1]\n\
+ ldr r0, [r0, 0x10]\n\
+ lsls r1, r5, 4\n\
+ ldr r2, [r0, 0xC]\n\
+ adds r2, r1\n\
+ b _080B34C0\n\
+ .align 2, 0\n\
+_080B34A8: .4byte 0x000001ff\n\
+_080B34AC: .4byte gMapHeader\n\
+_080B34B0:\n\
+ mov r2, r9\n\
+ ldr r0, [r2]\n\
+ ldr r1, [r0, 0x14]\n\
+ ldr r2, _080B34CC @ =0xfffffe00\n\
+ adds r0, r5, r2\n\
+ lsls r0, 4\n\
+ ldr r2, [r1, 0xC]\n\
+ adds r2, r0\n\
+_080B34C0:\n\
+ adds r0, r6, 0\n\
+ adds r1, r7, 0\n\
+ bl BuyMenuDrawMapMetatile\n\
+ b _080B3506\n\
+ .align 2, 0\n\
+_080B34CC: .4byte 0xfffffe00\n\
+_080B34D0:\n\
+ cmp r5, r10\n\
+ bhi _080B34EC\n\
+ asrs r0, r4, 16\n\
+ mov r3, r9\n\
+ ldr r1, [r3]\n\
+ ldr r1, [r1, 0x10]\n\
+ lsls r3, r5, 4\n\
+ ldr r2, [r1, 0xC]\n\
+ adds r2, r3\n\
+ mov r3, r8\n\
+ asrs r1, r3, 16\n\
+ bl sub_80B33D0\n\
+ b _080B3506\n\
+_080B34EC:\n\
+ asrs r0, r4, 16\n\
+ mov r2, r9\n\
+ ldr r1, [r2]\n\
+ ldr r2, [r1, 0x14]\n\
+ ldr r3, _080B354C @ =0xfffffe00\n\
+ adds r1, r5, r3\n\
+ lsls r1, 4\n\
+ ldr r2, [r2, 0xC]\n\
+ adds r2, r1\n\
+ mov r3, r8\n\
+ asrs r1, r3, 16\n\
+ bl sub_80B33D0\n\
+_080B3506:\n\
+ cmp r7, 0\n\
+ bne _080B3520\n\
+ asrs r1, r4, 16\n\
+ cmp r1, 0\n\
+ beq _080B3520\n\
+ cmp r1, 0x6\n\
+ beq _080B3520\n\
+ lsls r1, 17\n\
+ asrs r1, 16\n\
+ ldr r0, _080B3550 @ =gBGTilemapBuffers + 0x800\n\
+ movs r2, 0x40\n\
+ bl sub_80B32EC\n\
+_080B3520:\n\
+ movs r1, 0x80\n\
+ lsls r1, 9\n\
+ adds r0, r4, r1\n\
+ lsrs r4, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x6\n\
+ ble _080B345A\n\
+ adds r0, r1, 0\n\
+ add r0, r8\n\
+ lsrs r1, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x5\n\
+ ble _080B3452\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080B354C: .4byte 0xfffffe00\n\
+_080B3550: .4byte gBGTilemapBuffers + 0x800\n\
+ .syntax divided");
+}
+
+void BuyMenuDrawMapGraphics(void)
+{
+ sub_80F9020();
+ sub_80B356C();
+ sub_80B368C();
+ sub_80B3420();
+}
+
+// yet another difficult multi for-loop. No.
+__attribute__((naked))
+void sub_80B356C(void) // PopulateShopViewWindowObjectInfo ?
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x8\n\
+ movs r0, 0\n\
+ mov r8, r0\n\
+ mov r4, sp\n\
+ adds r4, 0x2\n\
+ mov r0, sp\n\
+ adds r1, r4, 0\n\
+ bl GetXYCoordsOneStepInFrontOfPlayer\n\
+ bl PlayerGetZCoord\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ str r0, [sp, 0x4]\n\
+ movs r5, 0\n\
+ ldr r2, _080B3674 @ =gUnknown_020386A4\n\
+ movs r1, 0x10\n\
+_080B3598:\n\
+ lsls r0, r5, 3\n\
+ adds r0, r2\n\
+ strh r1, [r0]\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0xF\n\
+ bls _080B3598\n\
+ movs r5, 0\n\
+ ldr r7, _080B3678 @ =gUnknown_020386AA\n\
+ subs r1, r7, 0x6\n\
+ mov r9, r1\n\
+_080B35B0:\n\
+ movs r4, 0\n\
+ adds r2, r5, 0x1\n\
+ mov r10, r2\n\
+_080B35B6:\n\
+ mov r1, sp\n\
+ ldr r3, _080B367C @ =0x0000fffd\n\
+ adds r0, r3, 0\n\
+ ldrh r1, [r1]\n\
+ adds r0, r1\n\
+ adds r0, r4\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ ldr r2, _080B3680 @ =0x0000fffe\n\
+ adds r1, r2, 0\n\
+ mov r3, sp\n\
+ ldrh r3, [r3, 0x2]\n\
+ adds r1, r3\n\
+ adds r1, r5\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ ldr r2, [sp, 0x4]\n\
+ bl GetFieldObjectIdByXYZ\n\
+ lsls r0, 24\n\
+ lsrs r2, r0, 24\n\
+ cmp r2, 0x10\n\
+ beq _080B3650\n\
+ mov r0, r8\n\
+ lsls r3, r0, 3\n\
+ mov r1, r9\n\
+ adds r0, r3, r1\n\
+ movs r6, 0\n\
+ strh r2, [r0]\n\
+ mov r0, r9\n\
+ adds r0, 0x2\n\
+ adds r0, r3, r0\n\
+ strh r4, [r0]\n\
+ ldr r1, _080B3684 @ =gUnknown_020386A8\n\
+ adds r0, r3, r1\n\
+ strh r5, [r0]\n\
+ ldr r1, _080B3688 @ =gMapObjects\n\
+ lsls r0, r2, 3\n\
+ adds r0, r2\n\
+ lsls r0, 2\n\
+ adds r2, r0, r1\n\
+ ldrb r0, [r2, 0x18]\n\
+ lsls r0, 28\n\
+ lsrs r0, 28\n\
+ cmp r0, 0x1\n\
+ bne _080B3616\n\
+ adds r0, r3, r7\n\
+ strh r6, [r0]\n\
+_080B3616:\n\
+ ldrb r0, [r2, 0x18]\n\
+ lsls r0, 28\n\
+ lsrs r0, 28\n\
+ cmp r0, 0x2\n\
+ bne _080B3626\n\
+ adds r1, r3, r7\n\
+ movs r0, 0x1\n\
+ strh r0, [r1]\n\
+_080B3626:\n\
+ ldrb r0, [r2, 0x18]\n\
+ lsls r0, 28\n\
+ lsrs r0, 28\n\
+ cmp r0, 0x3\n\
+ bne _080B3636\n\
+ adds r1, r3, r7\n\
+ movs r0, 0x2\n\
+ strh r0, [r1]\n\
+_080B3636:\n\
+ ldrb r0, [r2, 0x18]\n\
+ lsls r0, 28\n\
+ lsrs r0, 28\n\
+ cmp r0, 0x4\n\
+ bne _080B3646\n\
+ adds r1, r3, r7\n\
+ movs r0, 0x3\n\
+ strh r0, [r1]\n\
+_080B3646:\n\
+ mov r0, r8\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+_080B3650:\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x6\n\
+ bls _080B35B6\n\
+ mov r2, r10\n\
+ lsls r0, r2, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x4\n\
+ bls _080B35B0\n\
+ add sp, 0x8\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080B3674: .4byte gUnknown_020386A4\n\
+_080B3678: .4byte gUnknown_020386AA\n\
+_080B367C: .4byte 0x0000fffd\n\
+_080B3680: .4byte 0x0000fffe\n\
+_080B3684: .4byte gUnknown_020386A8\n\
+_080B3688: .4byte gMapObjects\n\
+ .syntax divided");
+}
+/*
+struct UnkStruct_20386A4
+{
+ s16 mapObjId;
+ u16 unk2;
+ u16 unk4;
+ u8 unk6[2];
+};
+*/
+
+//extern s16 gUnknown_020386A4[][];
+//extern struct UnkStruct_20386A4 gUnknown_020386A4[];
+
+// all 3 of these are incredibly hard, please help
+/*void sub_80B368C(void)
+{
+ // r0 = spriteId
+ // r1 = gUnknown_020386A4 + 6
+ // r2 = gSprites[spriteId]
+ // r3 = gUnknown_020386A4[i].unk4 + 32
+ // r4 = i * 8
+ // r5 = 0 (i)
+ // r6 = gUnknown_020386A4
+ // r7 = gMapObjects
+ // r8 = gUnknown_020386A4 + 6
+ // r9 =
+ // r10 =
+ // r11 =
+ // r12 =
+
+ u8 i = 0;
+ u8 *unkArray = (u8 *)&gUnknown_020386A4[6];
+
+ for(; i < 16; i++) // max objects?
+ {
+ s16 mapObjId = unkStruct[i].mapObjId;
+ if(mapObjId != 16)
+ {
+ u8 spriteId = AddPseudoFieldObject(
+ gMapObjects[mapObjId].graphicsId,
+ SpriteCallbackDummy,
+ unkStruct[i].unk2 * 16 + 8,
+ unkStruct[i].unk4 + 12,
+ 2);
+ StartSpriteAnim(&gSprites[spriteId], unkArray[i]);
+ }
+ }
+}*/