diff --git a/asm/non_matching/eu/HandlePlayerLife.inc b/asm/non_matching/eu/HandlePlayerLife.inc deleted file mode 100644 index 3054b708..00000000 --- a/asm/non_matching/eu/HandlePlayerLife.inc +++ /dev/null @@ -1,251 +0,0 @@ -.syntax unified - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080170E4 @ =gUnk_0200AF00 - adds r2, r0, #0 - adds r2, #0x2f - movs r1, #0 - strb r1, [r2] - subs r2, #2 - strb r1, [r2] - adds r0, #0x2e - strb r1, [r0] - ldr r2, _080170E8 @ =gPlayerEntity - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08017072 - adds r0, r2, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08017072 - movs r0, #0x86 - bl SoundReq -_08017072: - ldr r4, _080170EC @ =gPlayerState - ldr r0, [r4, #0x30] - ldr r1, _080170F0 @ =0xFDFFFDFF - ands r0, r1 - str r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0801708A - bl ResetPlayer -_0801708A: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _080170A4 - adds r0, r4, #0 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #0 - bne _080170A4 - bl DeleteClones -_080170A4: - bl sub_08079B24 - cmp r0, #0 - bne _080170B2 - adds r0, r5, #0 - bl sub_08079708 -_080170B2: - ldr r0, _080170F4 @ =gUnk_03003DF0 - movs r4, #0 - strb r4, [r0] - ldr r2, _080170EC @ =gPlayerState - adds r1, r2, #0 - adds r1, #0x27 - ldrb r0, [r1] - cmp r0, #0 - beq _080170C8 - subs r0, #1 - strb r0, [r1] -_080170C8: - adds r1, r2, #0 - adds r1, #0xa8 - ldrb r0, [r1] - adds r3, r2, #0 - adds r3, #0xa9 - strb r0, [r3] - strb r4, [r1] - subs r1, #0x1e - ldrb r0, [r1] - cmp r0, #0 - beq _080170F8 - subs r0, #1 - strb r0, [r1] - b _08017222 - .align 2, 0 -_080170E4: .4byte gUnk_0200AF00 -_080170E8: .4byte gPlayerEntity -_080170EC: .4byte gPlayerState -_080170F0: .4byte 0xFDFFFDFF -_080170F4: .4byte gUnk_03003DF0 -_080170F8: - adds r0, r2, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - beq _08017104 - b _08017222 -_08017104: - ldr r0, _08017160 @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08017112 - b _08017222 -_08017112: - ldr r0, _08017164 @ =gUnk_0200AF00 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0801714E - ldr r0, _08017168 @ =gRoomTransition - ldr r0, [r0] - movs r1, #0x5a - bl __modsi3 - cmp r0, #0 - bne _0801714E - ldr r2, _0801716C @ =gSave - adds r0, r2, #0 - adds r0, #0xab - ldrb r0, [r0] - lsrs r1, r0, #2 - cmp r1, #0x18 - bls _08017138 - movs r1, #0x18 -_08017138: - cmp r1, #7 - bhi _0801713E - movs r1, #8 -_0801713E: - adds r0, r2, #0 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, r1 - bhi _0801714E - ldr r0, _08017170 @ =0x0000011F - bl EnqueueSFX -_0801714E: - ldr r0, _0801716C @ =gSave - adds r2, r0, #0 - adds r2, #0xb2 - ldrb r1, [r2] - cmp r1, #0 - bne _08017174 - adds r0, #0xc4 - strh r1, [r0] - b _08017192 - .align 2, 0 -_08017160: .4byte gMessage -_08017164: .4byte gUnk_0200AF00 -_08017168: .4byte gRoomTransition -_0801716C: .4byte gSave -_08017170: .4byte 0x0000011F -_08017174: - adds r1, r0, #0 - adds r1, #0xc4 - ldrh r0, [r1] - cmp r0, #0 - beq _08017188 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08017192 -_08017188: - movs r0, #0 - strb r0, [r2] - ldr r0, _080171A4 @ =0x000001B3 - bl SoundReq -_08017192: - ldr r0, _080171A8 @ =gSave - adds r3, r0, #0 - adds r3, #0xb3 - ldrb r1, [r3] - cmp r1, #0 - bne _080171AC - adds r0, #0xc6 - strh r1, [r0] - b _080171DC - .align 2, 0 -_080171A4: .4byte 0x000001B3 -_080171A8: .4byte gSave -_080171AC: - adds r2, r0, #0 - adds r2, #0xc6 - ldrh r0, [r2] - cmp r0, #0 - beq _080171C0 - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080171CE -_080171C0: - movs r0, #0 - strb r0, [r3] - movs r0, #0xa0 - lsls r0, r0, #1 - bl SoundReq - b _080171DC -_080171CE: - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080171DC - adds r0, r5, #0 - bl CreateSparkle -_080171DC: - ldr r0, _080171F0 @ =gSave - adds r3, r0, #0 - adds r3, #0xba - ldrb r1, [r3] - cmp r1, #0 - bne _080171F4 - adds r0, #0xc8 - strh r1, [r0] - b _08017222 - .align 2, 0 -_080171F0: .4byte gSave -_080171F4: - adds r2, r0, #0 - adds r2, #0xc8 - ldrh r0, [r2] - cmp r0, #0 - beq _08017208 - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _0801720E -_08017208: - movs r0, #0 - strb r0, [r3] - b _08017222 -_0801720E: - movs r0, #0x3f - ands r1, r0 - cmp r1, #0 - bne _08017222 - ldrb r1, [r3] - adds r1, #0x55 - adds r0, r5, #0 - movs r2, #0 - bl CreateFx -_08017222: - pop {r4, r5} - pop {r0} - bx r0 -.syntax divided diff --git a/asm/non_matching/eu/Manager7_Main.inc b/asm/non_matching/eu/Manager7_Main.inc deleted file mode 100644 index 4f31a4cf..00000000 --- a/asm/non_matching/eu/Manager7_Main.inc +++ /dev/null @@ -1,95 +0,0 @@ -.syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080578C4 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x20 - movs r0, #0xff - strb r0, [r1] - ldr r1, _0805791C @ =sub_080582F8 - adds r0, r4, #0 - movs r2, #0 - bl RegisterTransitionManager -_080578C4: - ldr r0, _08057920 @ =gRoomControls - ldrh r5, [r0] - cmp r5, #0 - bne _08057960 - adds r0, r4, #0 - bl sub_08057E40 - cmp r0, #0 - beq _080578E8 - ldr r0, _08057924 @ =gRoomVars - ldrb r6, [r0, #0x10] - adds r1, r4, #0 - adds r1, #0x20 - ldrb r0, [r1] - cmp r0, r6 - beq _080578E8 - strb r6, [r1] - strb r5, [r4, #0xe] -_080578E8: - lsls r1, r6, #6 - ldr r0, _08057928 @ =gUnk_081080A4 - adds r2, r1, r0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _08057938 - ldr r1, _0805792C @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - ldr r0, [r2] - ldr r1, _08057930 @ =gGlobalGfxAndPalettes - adds r0, r0, r1 - ldr r1, [r2, #4] - movs r2, #0x80 - lsls r2, r2, #5 - bl LoadResourceAsync - ldr r0, _08057934 @ =gUnk_081081E4 - adds r0, r6, r0 - ldrb r0, [r0] - bl LoadPaletteGroup - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - b _08057960 - .align 2, 0 -_0805791C: .4byte sub_08057E30 -_08057920: .4byte gRoomControls -_08057924: .4byte gRoomVars -_08057928: .4byte gUnk_081080A4 -_0805792C: .4byte gUnk_02034490 -_08057930: .4byte gGlobalGfxAndPalettes -_08057934: .4byte gUnk_081081E4 -_08057938: - cmp r1, #0 - blt _08057960 - cmp r1, #7 - bgt _08057960 - lsls r1, r1, #3 - adds r1, r1, r2 - ldr r0, [r1] - ldr r2, _08057964 @ =gGlobalGfxAndPalettes - adds r0, r0, r2 - ldr r1, [r1, #4] - movs r2, #0x80 - lsls r2, r2, #5 - bl LoadResourceAsync - ldrb r0, [r4, #0xe] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xe] - ldr r0, _08057968 @ =gUnk_02034490 - strb r1, [r0] -_08057960: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057964: .4byte gGlobalGfxAndPalettes -_08057968: .4byte gUnk_02034490 -.syntax divided diff --git a/asm/non_matching/eu/MandiblesProjectile_Action3.inc b/asm/non_matching/eu/MandiblesProjectile_Action3.inc deleted file mode 100644 index 311878eb..00000000 --- a/asm/non_matching/eu/MandiblesProjectile_Action3.inc +++ /dev/null @@ -1,98 +0,0 @@ -.syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - cmp r5, #0 - bne _080A984A - bl DeleteThisEntity -_080A984A: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A9856 - bl DeleteThisEntity - b _080A989A -_080A9856: - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl GetSpriteSubEntryOffsetDataPointer - adds r3, r0, #0 - ldrb r1, [r5, #0x14] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080A9884 - movs r2, #0 - ldrsb r2, [r3, r2] - rsbs r2, r2, #0 - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - b _080A989A -_080A9884: - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_080A989A: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080A98F8 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A98B0 - subs r0, #1 - strb r0, [r4, #0xf] - b _080A98F8 -_080A98B0: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A98F8 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #3 - strb r0, [r1] - movs r2, #0x40 - movs r0, #0x40 - strb r0, [r4, #0xf] - ldrb r0, [r5, #0x14] - lsls r1, r0, #2 - strb r1, [r4, #0x15] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x1b] - movs r0, #0x3f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldr r0, _080A98FC @ =gHitbox_0 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #0 - bl sub_080AA3E0 -_080A98F8: - pop {r4, r5, pc} - .align 2, 0 -_080A98FC: .4byte gHitbox_0 -.syntax divided diff --git a/asm/non_matching/eu/sub_0802AAC0.inc b/asm/non_matching/eu/sub_0802AAC0.inc deleted file mode 100644 index 8024a38e..00000000 --- a/asm/non_matching/eu/sub_0802AAC0.inc +++ /dev/null @@ -1,101 +0,0 @@ -.syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - bl sub_0802AC40 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AAB4 - adds r0, r4, #0 - movs r1, #4 - bl sub_0802AD1C -_0802AAB4: - adds r6, r4, #0 - adds r6, #0x81 - ldrb r0, [r6] - cmp r0, #0 - beq _0802AB38 - ldr r5, [r4, #0x54] - cmp r5, #0 - bne _0802AAC8 - strb r5, [r6] - b _0802AB56 -_0802AAC8: - ldr r0, [r5, #4] - cmp r0, #0 - bne _0802AAD4 - strb r0, [r6] - str r0, [r4, #0x54] - b _0802AB56 -_0802AAD4: - ldrb r0, [r5, #0xe] - mov r8, r0 - cmp r0, #0 - bne _0802AB56 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0802AB24 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r7, #0x32 - ldrsh r1, [r4, r7] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - bne _0802AB2C - ldr r1, _0802AB28 @ =gPlayerEntity - adds r0, r4, #0 - movs r2, #0x10 - movs r3, #0x10 - bl EntityInRectRadius - cmp r0, #0 - beq _0802AB56 - ldrb r0, [r5, #0xf] - cmp r0, #0x50 - bhi _0802AB56 - mov r0, r8 - strb r0, [r6] - b _0802AB56 - .align 2, 0 -_0802AB24: .4byte gRoomControls -_0802AB28: .4byte gPlayerEntity -_0802AB2C: - ldrb r0, [r5, #0xf] - cmp r0, #0x13 - bhi _0802AB56 - mov r1, r8 - strb r1, [r6] - b _0802AB56 -_0802AB38: - movs r1, #4 - strb r1, [r4, #0xc] - movs r0, #0xc0 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_0802AB56: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} -.syntax divided diff --git a/asm/non_matching/eu/sub_0802AB40.inc b/asm/non_matching/eu/sub_0802AB40.inc deleted file mode 100644 index 8e4b9440..00000000 --- a/asm/non_matching/eu/sub_0802AB40.inc +++ /dev/null @@ -1,50 +0,0 @@ -.syntax unified - push {r4, lr} - adds r4, r0, #0 - bl sub_0802AC40 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802ABA6 - adds r0, r4, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #4 - bhi _0802AB90 - movs r0, #5 - strb r0, [r4, #0xc] - strh r1, [r4, #0x24] - ldrb r1, [r4, #0xa] - adds r1, #1 - adds r0, r4, #0 - bl InitializeAnimation - b _0802ABBA -_0802AB90: - movs r0, #0xc0 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - b _0802ABBA -_0802ABA6: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _0802ABBA - adds r0, r4, #0 - movs r1, #4 - bl sub_0802ACDC -_0802ABBA: - pop {r4, pc} -.syntax divided diff --git a/asm/non_matching/eu/sub_0802AC40.inc b/asm/non_matching/eu/sub_0802AC40.inc deleted file mode 100644 index aac8df27..00000000 --- a/asm/non_matching/eu/sub_0802AC40.inc +++ /dev/null @@ -1,43 +0,0 @@ -.syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl LinearMoveUpdate - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _0802AC26 - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - bne _0802AC44 - strb r0, [r5] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - b _0802AC42 -_0802AC26: - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802AC44 - movs r0, #1 - strb r0, [r5] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3a - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 -_0802AC42: - strb r0, [r2] -_0802AC44: - pop {r4, r5, pc} - .align 2, 0 -.syntax divided diff --git a/asm/non_matching/eu/sub_0802ADDC.inc b/asm/non_matching/eu/sub_0802ADDC.inc deleted file mode 100644 index 115c4495..00000000 --- a/asm/non_matching/eu/sub_0802ADDC.inc +++ /dev/null @@ -1,38 +0,0 @@ -.syntax unified - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xa] - adds r1, #2 - movs r0, #0x1b - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0802AD92 - adds r0, r5, #0 - bl sub_0802B234 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - strb r1, [r4, #0xb] - str r5, [r4, #0x50] - str r4, [r5, #0x54] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0802AD92 - subs r1, #7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0802AD92: - pop {r4, r5, pc} -.syntax divided diff --git a/asm/non_matching/eu/sub_0802AE68.inc b/asm/non_matching/eu/sub_0802AE68.inc deleted file mode 100644 index 76996976..00000000 --- a/asm/non_matching/eu/sub_0802AE68.inc +++ /dev/null @@ -1,78 +0,0 @@ -.syntax unified - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - cmp r2, #0 - bne _0802ADFA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] -_0802ADFA: - adds r0, r2, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AE1E - adds r0, r2, #0 - adds r1, r4, #0 - bl CopyPosition - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802AE68 -_0802AE1E: - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r2, #1 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802AE54 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x18 - orrs r1, r0 - strb r1, [r2] - b _0802AE62 -_0802AE54: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802AE62: - adds r0, r4, #0 - bl GetNextFrame -_0802AE68: - pop {r4, pc} - .align 2, 0 -.syntax divided diff --git a/asm/non_matching/eu/sub_0802B1BC.inc b/asm/non_matching/eu/sub_0802B1BC.inc deleted file mode 100644 index 5e2f6265..00000000 --- a/asm/non_matching/eu/sub_0802B1BC.inc +++ /dev/null @@ -1,71 +0,0 @@ -.syntax unified - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B17A - subs r0, #1 - strb r0, [r4, #0xe] -_0802B17A: - ldr r2, [r4, #0x50] - cmp r2, #0 - bne _0802B190 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0802B190: - adds r0, r2, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B1AA - adds r0, r2, #0 - adds r1, r4, #0 - bl CopyPosition - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - b _0802B1EC -_0802B1AA: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802B1D8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x18 - orrs r1, r0 - strb r1, [r2] - b _0802B1E6 -_0802B1D8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802B1E6: - adds r0, r4, #0 - bl GetNextFrame -_0802B1EC: - pop {r4, pc} - .align 2, 0 -.syntax divided diff --git a/asm/non_matching/eu/sub_08057A18.inc b/asm/non_matching/eu/sub_08057A18.inc deleted file mode 100644 index e5c40648..00000000 --- a/asm/non_matching/eu/sub_08057A18.inc +++ /dev/null @@ -1,56 +0,0 @@ -.syntax unified - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, #0 - bl SetInitializationPriority - ldr r5, _080575E8 @ =gUnk_03004030 - ldrb r0, [r5, #9] - strb r0, [r5, #0xa] - ldr r3, _080575EC @ =gRoomControls - ldrb r0, [r3, #4] - strb r0, [r5, #9] - ldr r1, _080575F0 @ =gRoomTransition - ldrb r0, [r4, #4] - strb r0, [r1, #0xc] - ldrb r0, [r4, #5] - strb r0, [r1, #0xd] - ldrb r0, [r4, #4] - strb r0, [r3, #4] - ldrb r0, [r4, #5] - strb r0, [r3, #5] - str r4, [r5] - ldr r6, _080575F4 @ =gPlayerEntity - ldrh r1, [r6, #0x2e] - ldrh r0, [r3, #6] - subs r1, r1, r0 - ldrh r2, [r4] - movs r0, #0x3f - ands r0, r2 - lsls r0, r0, #4 - subs r1, r1, r0 - strh r1, [r5, #4] - ldrh r1, [r6, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ldrh r2, [r4] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r2 - lsrs r0, r0, #2 - subs r1, r1, r0 - strh r1, [r5, #6] - ldrb r0, [r4, #3] - bl sub_08080930 - mov r0, r8 - bl DeleteManager - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_080575E8: .4byte gUnk_03004030 -_080575EC: .4byte gRoomControls -_080575F0: .4byte gRoomTransition -_080575F4: .4byte gPlayerEntity -.syntax divided diff --git a/asm/non_matching/eu/sub_08057E7C.inc b/asm/non_matching/eu/sub_08057E7C.inc deleted file mode 100644 index 34c9421b..00000000 --- a/asm/non_matching/eu/sub_08057E7C.inc +++ /dev/null @@ -1,37 +0,0 @@ -.syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _080579F0 @ =gUnk_081081E4 - adds r0, r4, r0 - ldrb r0, [r0] - bl LoadPaletteGroup - lsls r1, r4, #6 - ldr r0, _080579F4 @ =gUnk_081080A4 - adds r1, r1, r0 - movs r3, #0 - ldr r2, _080579F8 @ =0x040000D4 - ldr r6, _080579FC @ =gGlobalGfxAndPalettes - ldr r5, _08057A00 @ =0x84000400 -_080579D4: - ldr r0, [r1] - adds r0, r0, r6 - str r0, [r2] - ldr r0, [r1, #4] - str r0, [r2, #4] - str r5, [r2, #8] - ldr r0, [r2, #8] - adds r3, #1 - adds r1, #8 - cmp r3, #7 - bls _080579D4 - ldr r0, _08057A04 @ =gRoomVars - strb r4, [r0, #0x10] - pop {r4, r5, r6, pc} - .align 2, 0 -_080579F0: .4byte gUnk_081081E4 -_080579F4: .4byte gUnk_081080A4 -_080579F8: .4byte 0x040000D4 -_080579FC: .4byte gGlobalGfxAndPalettes -_08057A00: .4byte 0x84000400 -_08057A04: .4byte gRoomVars -.syntax divided diff --git a/asm/non_matching/itemSword/sub_08075338.inc b/asm/non_matching/itemSword/sub_08075338.inc deleted file mode 100644 index ca9fa8fe..00000000 --- a/asm/non_matching/itemSword/sub_08075338.inc +++ /dev/null @@ -1,369 +0,0 @@ -.ifdef EU - .syntax unified - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldr r4, _08074DA8 @ =gPlayerState - ldr r1, [r4, #0x30] - movs r3, #0x80 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08074DAC - ldrb r0, [r5, #9] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r5, #9] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - movs r0, #0xc0 - lsls r0, r0, #4 - strh r0, [r4, #8] - movs r0, #0x75 - bl SoundReq - b _08074EE2 - .align 2, 0 -_08074DA8: .4byte gPlayerState -_08074DAC: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _08074E22 - movs r6, #7 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #3 - beq _08074E18 - movs r0, #0x78 - ands r0, r2 - cmp r0, #0 - bne _08074E18 - ldr r3, _08074E10 @ =gPlayerEntity - ldr r1, [r3, #0x20] - ldr r0, _08074E14 @ =0x00017FFF - cmp r1, r0 - bhi _08074E18 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08074E18 - ldr r0, [r3, #0x34] - cmp r0, #0 - beq _08074E18 - movs r0, #0x20 - orrs r0, r2 - strb r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0xab - strb r6, [r0] - movs r0, #8 - asrs r0, r7 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r4, #4] - orrs r0, r1 - strb r0, [r4, #4] - adds r0, r5, #0 - bl sub_08077B98 - movs r0, #6 - strb r0, [r5, #4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08075898 - b _08074EE2 - .align 2, 0 -_08074E10: .4byte gPlayerEntity -_08074E14: .4byte 0x00017FFF -_08074E18: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_080759B8 - b _08074EE2 -_08074E22: - movs r6, #0x80 - lsls r6, r6, #0xb - ands r6, r1 - cmp r6, #0 - beq _08074EAE - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _08074E4C - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _08074EE2 - bl DeleteEntity - str r6, [r4, #0x2c] - b _08074EE2 -_08074E4C: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 - movs r3, #8 - adds r1, r3, #0 - asrs r1, r7 - lsls r0, r1, #4 - orrs r0, r1 - ldrb r2, [r4, #4] - orrs r0, r2 - strb r0, [r4, #4] - ldrb r2, [r4, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - orrs r1, r0 - strb r1, [r4, #0xb] - strb r3, [r5, #4] - movs r0, #0x14 - strb r0, [r5, #7] - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r1, [r5, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #9] - adds r1, r4, #0 - adds r1, #0xab - movs r0, #2 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [r4, #0x30] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_08077DF4 - movs r0, #0x77 - bl SoundReq - b _08074EE2 -_08074EAE: - ldrb r1, [r4, #0x1b] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08074EC0 - strb r6, [r4, #0x1b] - ldr r0, _08074EE4 @ =gPlayerEntity - bl sub_0806F948 -_08074EC0: - ldr r1, [r4, #0x2c] - cmp r1, #0 - beq _08074ED4 - ldrb r0, [r1, #9] - cmp r0, #1 - beq _08074ED4 - adds r0, r1, #0 - bl DeleteEntity - str r6, [r4, #0x2c] -_08074ED4: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 -_08074EE2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08074EE4: .4byte gPlayerEntity - .syntax divided -.else - .syntax unified - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldr r4, _0807536C @ =gPlayerState - ldr r1, [r4, #0x30] - movs r3, #0x80 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08075370 - ldrb r0, [r5, #9] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r5, #9] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - movs r0, #0xc0 - lsls r0, r0, #4 - strh r0, [r4, #8] - movs r0, #0x75 - bl SoundReq - b _080754B4 - .align 2, 0 -_0807536C: .4byte gPlayerState -_08075370: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _080753DC - movs r6, #7 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #3 - beq _080753E4 - movs r0, #0x78 - ands r0, r2 - cmp r0, #0 - bne _080753E4 - ldr r3, _080753D4 @ =gPlayerEntity - ldr r1, [r3, #0x20] - ldr r0, _080753D8 @ =0x00017FFF - cmp r1, r0 - bhi _080753E4 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080753E4 - ldr r0, [r3, #0x34] - cmp r0, #0 - beq _080753E4 - movs r0, #0x20 - orrs r0, r2 - strb r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0xab - strb r6, [r0] - movs r0, #8 - asrs r0, r7 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r4, #4] - orrs r0, r1 - strb r0, [r4, #4] - adds r0, r5, #0 - bl sub_08077B98 - movs r0, #6 - strb r0, [r5, #4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08075898 - b _080754B4 - .align 2, 0 -_080753D4: .4byte gPlayerEntity -_080753D8: .4byte 0x00017FFF -_080753DC: - ldr r2, _080753F0 @ =gPlayerEntity - ldr r0, [r2, #0x34] - cmp r0, #0 - beq _080753F4 -_080753E4: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_080759B8 - b _080754B4 - .align 2, 0 -_080753F0: .4byte gPlayerEntity -_080753F4: - movs r6, #0x80 - lsls r6, r6, #0xb - ands r6, r1 - cmp r6, #0 - beq _08075480 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _0807541E - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _080754B4 - bl DeleteEntity - str r6, [r4, #0x2c] - b _080754B4 -_0807541E: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 - movs r3, #8 - adds r1, r3, #0 - asrs r1, r7 - lsls r0, r1, #4 - orrs r0, r1 - ldrb r2, [r4, #4] - orrs r0, r2 - strb r0, [r4, #4] - ldrb r2, [r4, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - orrs r1, r0 - strb r1, [r4, #0xb] - strb r3, [r5, #4] - movs r0, #0x14 - strb r0, [r5, #7] - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r1, [r5, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #9] - adds r1, r4, #0 - adds r1, #0xab - movs r0, #2 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [r4, #0x30] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_08077DF4 - movs r0, #0x77 - bl SoundReq - b _080754B4 -_08075480: - ldrb r1, [r4, #0x1b] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075492 - strb r6, [r4, #0x1b] - adds r0, r2, #0 - bl sub_0806F948 -_08075492: - ldr r1, [r4, #0x2c] - cmp r1, #0 - beq _080754A6 - ldrb r0, [r1, #9] - cmp r0, #1 - beq _080754A6 - adds r0, r1, #0 - bl DeleteEntity - str r6, [r4, #0x2c] -_080754A6: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 -_080754B4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - .syntax divided -.endif \ No newline at end of file diff --git a/linker.ld b/linker.ld index 5e876c73..1e860955 100644 --- a/linker.ld +++ b/linker.ld @@ -87,6 +87,7 @@ SECTIONS { . = 0x000227F0; gUnk_020227F0 = .; . = 0x000227F8; gUnk_020227F8 = .; . = 0x00022800; gUnk_02022800 = .; + . = 0x0002281D; gTextRenderUpdateDraw = .; . = 0x00022830; gUnk_02022830 = .; . = 0x00024030; gMessageChoices = .; . = 0x00024048; gUnk_02024048 = .; diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index bc6367ee..1ceea7db 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -188,9 +188,6 @@ void sub_0802AA40(Entity* this) { } } -#ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_0802AAC0.inc", void sub_0802AAC0(Entity* this)) -#else void sub_0802AAC0(Entity* this) { sub_0802AC40(this); if (--this->field_0xf == 0) { @@ -204,24 +201,52 @@ void sub_0802AAC0(Entity* this) { } else if (ent->next == NULL) { this->field_0x80.HALF.HI = 0; this->child = NULL; +#ifdef EU + } else if (ent->actionDelay == 0) { + if (sub_080002E0(COORD_TO_TILE(this), 1) == 0) { + if (EntityInRectRadius(this, &gPlayerEntity, 0x10, 0x10) && ent->field_0xf <= 0x50) { + this->field_0x80.HALF.HI = 0; + } + } else if (ent->field_0xf <= 0x13) { + this->field_0x80.HALF.HI = 0; + } + } +#else } else if (ent->actionDelay == 0 && ent->field_0xf < 0x51) { this->field_0x80.HALF.HI = 0; } +#endif } else { this->action = 4; this->actionDelay = 0xc0; this->field_0xf = 4; this->field_0x80.HALF.LO ^= 1; +#ifndef EU this->field_0x78.HALF.LO = 0; this->field_0x78.HALF.HI = 4; this->direction = 0xff; +#endif InitializeAnimation(this, 0); } } -#endif #ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_0802AB40.inc", void sub_0802AB40(Entity* this)); +void sub_0802AB40(Entity* this) { + sub_0802AC40(this); + if (--this->actionDelay == 0) { + if (this->field_0x7a.HALF.LO <= 4) { + this->action = 5; + this->speed = 0; + InitializeAnimation(this, this->type + 1); + } else { + this->actionDelay = 0xc0; + this->field_0xf = 0x4; + this->field_0x80.HALF.LO ^= 1; + } + } else if ((--this->field_0xf & 0xff) == 0) { + sub_0802ACDC(this, 4); + } +} #else void sub_0802AB40(Entity* this) { sub_0802AC40(this); @@ -275,9 +300,6 @@ void sub_0802AC08(Entity* this) { GetNextFrame(this); } -#ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_0802AC40.inc", void sub_0802AC40(Entity* this)) -#else void sub_0802AC40(Entity* this) { GetNextFrame(this); LinearMoveUpdate(this); @@ -285,6 +307,7 @@ void sub_0802AC40(Entity* this) { if (sub_0802B234(this) == 0) { this->field_0x7a.HALF.LO = 0; this->spritePriority.b1 = 0; +#ifndef EU } else { if (this->z.HALF.HI == 0) { if (this->spritePriority.b1 != 1) { @@ -295,19 +318,23 @@ void sub_0802AC40(Entity* this) { this->spritePriority.b1 = 3; } } +#endif } } else { if (sub_0802B234(this)) { this->field_0x7a.HALF.LO = 1; +#ifndef EU if (this->z.HALF.HI == 0) { this->spritePriority.b1 = 1; } else { this->spritePriority.b1 = 3; } +#else + this->spritePriority.b1 = 3; +#endif } } } -#endif void sub_0802ACDC(Entity* this, u32 param_2) { u32 x; @@ -356,10 +383,6 @@ void sub_0802AD54(Entity* this) { } } -#ifdef EU -// TODO regalloc in EU version -ASM_FUNC("asm/non_matching/eu/sub_0802ADDC.inc", void sub_0802ADDC(Entity* this)) -#else void sub_0802ADDC(Entity* this) { Entity* ent = CreateEnemy(BOMB_PEAHAT, this->type + 2); if (ent != NULL) { @@ -367,16 +390,15 @@ void sub_0802ADDC(Entity* this) { ent->parent = this; this->child = ent; CopyPosition(this, ent); - /*#ifdef EU - this->z.HALF.HI += 8; - #endif*/ +#ifdef EU + ent->z.HALF.HI += 8; +#endif this->field_0x80.HALF.HI = 1; if (this->type == 0) { this->field_0x7a.HALF.LO++; } } } -#endif void sub_0802AE24(Entity* this) { this->action = 1; @@ -392,7 +414,30 @@ void sub_0802AE24(Entity* this) { } #ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_0802AE68.inc", void sub_0802AE68(Entity* this)) +void sub_0802AE68(Entity* this) { + Entity* ent = this->parent; + if (ent == 0) { + this->action = 3; + this->spriteSettings.draw = 1; + this->field_0x80.HALF.LO = 1; + } + + if (ent->field_0x80.HALF.HI) { + CopyPosition(ent, this); + this->z.HALF.HI += 8; + this->spriteSettings.draw = 0; + } else { + this->action = 3; + this->field_0x80.HALF.LO = 1; + this->spriteSettings.draw = 1; + if (sub_0802B234(this)) { + this->spritePriority.b1 = 3; + } else { + this->spritePriority.b1 = 0; + } + GetNextFrame(this); + } +} #else void sub_0802AE68(Entity* this) { Entity* ent = sub_0802B250(this); @@ -569,7 +614,34 @@ void sub_0802B1A0(Entity* this) { } #ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_0802B1BC.inc", void sub_0802B1BC(Entity* this)) +void sub_0802B1BC(Entity* this) { + Entity* ent; + + if (this->actionDelay) { + this->actionDelay--; + } + + ent = this->parent; + if (ent == 0) { + this->action = 2; + this->spriteSettings.draw = 1; + } + + if (ent->field_0x80.HALF.HI) { + CopyPosition(ent, this); + this->z.HALF.HI += 8; + } else { + this->action = 2; + this->spriteSettings.draw = 1; + if (sub_0802B234(this)) { + this->spritePriority.b1 = 3; + } else { + this->spritePriority.b1 = 0; + } + + GetNextFrame(this); + } +} #else void sub_0802B1BC(Entity* this) { Entity* ent; diff --git a/src/interrupts.c b/src/interrupts.c index 1668d859..97b40a36 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -245,9 +245,6 @@ void PlayerUpdate(Entity* this) { } // Responsible for some life things like low health beep and initiating the death sequence -#ifdef EU -ASM_FUNC("asm/non_matching/eu/HandlePlayerLife.inc", void HandlePlayerLife(Entity* this)); -#else void HandlePlayerLife(Entity* this) { u32 temp; @@ -280,6 +277,19 @@ void HandlePlayerLife(Entity* this) { if ((gPlayerState.controlMode != CONTROL_ENABLED) || (gMessage.doTextBox & 0x7f)) return; +#ifdef EU + if ((gUnk_0200AF00.filler0[1] == 0) && gRoomTransition.frameCount % 90 == 0) { + temp = gSave.stats.maxHealth / 4; + if (temp > 24) + temp = 24; + if (temp < 8) + temp = 8; + + if (gSave.stats.health <= temp) { + EnqueueSFX(SFX_LOW_HEALTH); + } + } +#else gRoomVars.unk2 = gMessage.doTextBox & 0x7f; temp = gSave.stats.maxHealth / 4; if (temp > 24) @@ -293,6 +303,7 @@ void HandlePlayerLife(Entity* this) { EnqueueSFX(SFX_LOW_HEALTH); } } +#endif if (gSave.stats.charm == 0) { gSave.stats.charmTimer = 0; @@ -318,7 +329,6 @@ void HandlePlayerLife(Entity* this) { CreateFx(this, (FX_RED_AURA - 1) + gSave.stats.effect, 0); } } -#endif void sub_080171F0(void) { if (gPlayerState.mobility != 0) diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 25c904ca..3716f8f5 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -4,8 +4,11 @@ #include "object.h" extern void (*const gUnk_0811BD44[])(ItemBehavior*, u32); +extern void sub_08077B98(ItemBehavior*); void sub_080759B8(ItemBehavior*, u32); +void sub_080754B8(ItemBehavior*, u32); +void sub_08075898(ItemBehavior*, u32); extern u32 sub_08077EC8(ItemBehavior*); @@ -16,7 +19,79 @@ void ItemSword(ItemBehavior* this, u32 arg1) { gUnk_0811BD44[this->stateID](this, arg1); } -ASM_FUNC("asm/non_matching/itemSword/sub_08075338.inc", void sub_08075338(ItemBehavior* this, u32 arg1)) +void sub_08075338(ItemBehavior* this, u32 arg1) { + u32 temp, temp2; + if (gPlayerState.flags & 0x80) { + this->field_0x5[4] |= 0x80; + sub_08077D38(this, arg1); + gPlayerState.animation = 0xc00; + SoundReq(SFX_PLY_VO1); + return; + } + + if (gPlayerState.jump_status) { + if ((gPlayerState.jump_status & 7) != 3) { + if ((gPlayerState.jump_status & 0x78) == 0 && (u32)gPlayerEntity.zVelocity <= 0x17fff && + (gPlayerState.field_0xac & 0x40) && gPlayerEntity.z.WORD) { + gPlayerState.jump_status |= 0x20; + gPlayerState.field_0xab = 7; + gPlayerState.field_0x3[1] |= (8 >> arg1) | ((8 >> arg1) << 4); + sub_08077B98(this); + this->stateID = 6; + sub_08075898(this, arg1); + return; + } + } +#ifndef EU + sub_080759B8(this, arg1); + return; + } else if (gPlayerEntity.z.WORD) { +#endif + sub_080759B8(this, arg1); + return; + } + + if (gPlayerState.flags & 0x40000) { + if ((gPlayerState.field_0xac & 2) == 0) { + if (gPlayerState.item == NULL) + return; + DeleteEntity(gPlayerState.item); + gPlayerState.item = NULL; + return; + } + + sub_08077D38(this, arg1); + sub_08077B98(this); + temp = (8 >> arg1); + gPlayerState.field_0x3[1] |= temp | (temp << 4); + gPlayerState.field_0xa |= temp; + gPlayerState.keepFacing |= temp; + this->stateID = 8; + this->field_0x5[2] = 0x14; + this->field_0xf = 6; + this->field_0x5[4] |= 0x80; + gPlayerState.field_0xab = 2; + gPlayerState.flags |= 0x8000000; + sub_08077DF4(this, 0x130); + SoundReq(SFX_PLY_VO3); + return; + } + + if ((gPlayerState.sword_state & 0x80) == 0) { + gPlayerState.sword_state = 0; + sub_0806F948(&gPlayerEntity); + } + + if (gPlayerState.item) { + if (gPlayerState.item->id != 1) { + DeleteEntity(gPlayerState.item); + gPlayerState.item = NULL; + } + } + + sub_08077D38(this, arg1); + sub_08077B98(this); +} ASM_FUNC("asm/non_matching/itemSword/sub_080754B8.inc", void sub_080754B8(ItemBehavior* this, u32 arg1)) diff --git a/src/manager/manager4.c b/src/manager/manager4.c index f73c9514..7568960d 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -91,9 +91,6 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { extern void sub_08080930(u32); -#ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this, DiggingCaveEntrance* entr)) -#else void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { u16 tmp; SetInitializationPriority(); @@ -106,6 +103,8 @@ void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { gUnk_03004030.unk_00 = entr; gUnk_03004030.unk_04 = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x - ((entr->unk_00 & 0x3F) * 16); gUnk_03004030.unk_06 = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y - ((entr->unk_00 & 0xFC0) >> 2); + +#ifndef EU tmp = gUnk_03004030.unk_08; if (!tmp) { if ((entr->target_room | 0x80) != gUnk_03004030.unk_0b) { @@ -113,10 +112,11 @@ void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { } gUnk_03004030.unk_0b = entr->target_room | 0x80; } +#endif + sub_08080930(entr->unk_03); DeleteManager(this); } -#endif DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance* entr, int room) { for (; entr->unk_00 != 0xFFFF; entr++) { diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 5316a4a3..7666d365 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -55,7 +55,54 @@ const u32 gUnk_081080A4[0x50] = { const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 }; #ifdef EU -ASM_FUNC("asm/non_matching/eu/Manager7_Main.inc", void Manager7_Main(Manager7* this)) +void Manager7_Main(Manager7* this) { + u32 tmp; + const u32* tmp2; + s32 tmp3; + if (!this->manager.action) { + this->manager.action = 1; + this->manager.unk_0e = 8; + this->unk_20 = 0xFF; + + RegisterTransitionManager(this, sub_08057E30, 0); + } + if (gRoomControls.reload_flags) + return; + + if (sub_08057E40(this)) { + tmp = (u32)gRoomVars.unk_10[0]; + if (this->unk_20 != tmp) { + this->unk_20 = tmp; + this->manager.unk_0e = 0; + } + } + + tmp2 = &gUnk_081080A4[tmp << 4]; + tmp3 = this->manager.unk_0e; + if (tmp3 == 0) { + gUnk_02034490[0] = 1; + LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x1000); + LoadPaletteGroup(gUnk_081081E4[tmp]); + this->manager.unk_0e++; + } else { + switch (tmp3) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[(this->manager.unk_0e << 1)]], + tmp2[(this->manager.unk_0e << 1) + 1], 0x1000); + this->manager.unk_0e++; + gUnk_02034490[0] = 0; + case 8: + break; + } + } +} #else void Manager7_Main(Manager7* this) { u32 tmp; @@ -129,14 +176,15 @@ void sub_08057E64(void) { } } -#ifdef EU -ASM_FUNC("asm/non_matching/eu/sub_08057E7C.inc", void sub_08057E7C(u32 unk1)) -#else void sub_08057E7C(u32 unk1) { u32 tmp; const u32* tmp2; + +#ifndef EU if (unk1 > 4) return; +#endif + LoadPaletteGroup(gUnk_081081E4[unk1]); tmp2 = &gUnk_081080A4[unk1 << 4]; for (tmp = 0; tmp < 8; tmp++, tmp2 += 2) { @@ -144,4 +192,3 @@ void sub_08057E7C(u32 unk1) { } gRoomVars.unk_10[0] = unk1; } -#endif diff --git a/src/projectile/mandiblesProjectile.c b/src/projectile/mandiblesProjectile.c index d0526d09..f7fe2924 100644 --- a/src/projectile/mandiblesProjectile.c +++ b/src/projectile/mandiblesProjectile.c @@ -108,9 +108,6 @@ void MandiblesProjectile_Action2(Entity* this) { } } -#ifdef EU -ASM_FUNC("asm/non_matching/eu/MandiblesProjectile_Action3.inc", void MandiblesProjectile_Action3(Entity* this)) -#else void MandiblesProjectile_Action3(Entity* this) { u32 uVar1; s8* tmp; @@ -142,16 +139,20 @@ void MandiblesProjectile_Action3(Entity* this) { uVar1 = entity->animationState; this->direction = uVar1 << 2; this->animationState = uVar1 << 0x1a >> 0x1a; +#ifdef EU + this->spriteOrientation.flipY = 1; + this->hitbox = &gHitbox_0; +#else this->hitbox = &gHitbox_0; if (AreaIsDungeon() != 0) { this->spriteOrientation.flipY = 1; } +#endif sub_080AA3E0(this, 0); } } } } -#endif void MandiblesProjectile_Action4(Entity* this) { s32 iVar1;