diff --git a/asm/non_matching/player/PortalShrinkUpdate.inc b/asm/non_matching/player/PortalShrinkUpdate.inc deleted file mode 100644 index 3c377521..00000000 --- a/asm/non_matching/player/PortalShrinkUpdate.inc +++ /dev/null @@ -1,172 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08071654 - adds r1, r5, #0 - adds r1, #0x80 - ldr r0, [r1] - adds r0, #0x80 - lsls r0, r0, #0x14 - lsrs r7, r0, #0x17 - adds r4, r1, #0 - b _0807166A -_08071654: - adds r4, r5, #0 - adds r4, #0x80 - ldrb r1, [r4] - lsrs r1, r1, #6 - movs r0, #3 - eors r1, r0 - adds r1, #1 - movs r0, #0x10 - bl __divsi3 - asrs r7, r0, #1 -_0807166A: - adds r0, r5, #0 - adds r0, #0x84 - ldr r3, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r0, #0 - cmp r3, r1 - bls _08071684 - adds r0, r3, #0 - adds r0, #0x80 - lsls r0, r0, #0x14 - lsrs r3, r0, #0x17 - b _08071694 -_08071684: - cmp r3, r1 - bne _0807168C - movs r3, #0x10 - b _08071694 -_0807168C: - ldr r1, _080716B0 @ =gUnk_0811BABC - lsrs r0, r3, #5 - adds r0, r0, r1 - ldrb r3, [r0] -_08071694: - movs r0, #0x80 - lsls r0, r0, #9 - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #2 - beq _080716EA - cmp r0, #2 - bgt _080716B4 - cmp r0, #1 - beq _080716BA - b _08071754 - .align 2, 0 -_080716B0: .4byte gUnk_0811BABC -_080716B4: - cmp r0, #3 - beq _0807171E - b _08071754 -_080716BA: - movs r1, #0x29 - adds r1, r1, r5 - mov ip, r1 - ldrb r1, [r1] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, [r4] - cmp r0, #0x80 - bls _080716D6 - subs r0, r0, r7 - str r0, [r4] -_080716D6: - lsls r1, r3, #1 - ldr r0, [r2] - adds r0, r0, r1 - str r0, [r2] - mov r0, r8 - lsls r1, r0, #1 - ldr r0, [r5, #0x30] - adds r0, r0, r1 - str r0, [r5, #0x30] - b _08071754 -_080716EA: - ldr r0, [r4] - adds r0, r0, r7 - str r0, [r4] - ldr r1, [r2] - movs r6, #0x80 - lsls r6, r6, #1 - cmp r1, r6 - bls _08071710 - ldr r0, _0807170C @ =0x0000017F - cmp r1, r0 - bhi _08071702 - lsrs r3, r3, #1 -_08071702: - subs r0, r1, r3 - cmp r0, #0xff - bhi _08071716 - str r6, [r2] - b _08071718 - .align 2, 0 -_0807170C: .4byte 0x0000017F -_08071710: - cmp r1, #0x80 - bls _08071718 - subs r0, r1, r3 -_08071716: - str r0, [r2] -_08071718: - ldr r0, [r5, #0x34] - mov r1, r8 - b _08071750 -_0807171E: - ldr r0, [r4] - ldr r6, _08071740 @ =0x0000033F - cmp r0, r6 - bhi _0807172A - adds r0, r0, r7 - str r0, [r4] -_0807172A: - ldr r1, [r2] - cmp r1, r6 - bls _08071744 - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] - movs r0, #6 - strb r0, [r5, #0xd] - b _0807174A - .align 2, 0 -_08071740: .4byte 0x0000033F -_08071744: - lsls r0, r3, #1 - adds r0, r1, r0 - str r0, [r2] -_0807174A: - mov r0, r8 - lsls r1, r0, #1 - ldr r0, [r5, #0x34] -_08071750: - subs r0, r0, r1 - str r0, [r5, #0x34] -_08071754: - ldr r1, [r4] - ldr r2, [r2] - adds r0, r5, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r5, #0 - bl UpdateAnimationSingleFrame - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .syntax divided diff --git a/asm/non_matching/player/SurfaceAction_Swamp.inc b/asm/non_matching/player/SurfaceAction_Swamp.inc deleted file mode 100644 index 24b96bf6..00000000 --- a/asm/non_matching/player/SurfaceAction_Swamp.inc +++ /dev/null @@ -1,146 +0,0 @@ - .syntax unified - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - beq _08074690 - ldr r0, _0807468C @ =gPlayerState - movs r1, #0 - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_0807468C: .4byte gPlayerState -_08074690: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0807476C - adds r0, r4, #0 - bl sub_08079C30 - adds r1, r0, #0 - cmp r1, #0 - bne _080746B0 - ldr r0, _080746AC @ =gPlayerState - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_080746AC: .4byte gPlayerState -_080746B0: - ldr r3, _080746D4 @ =gPlayerState - ldr r1, [r3, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _0807476C - ldrb r2, [r3, #0x1e] - cmp r2, #0 - beq _080746D8 - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080746DC - strb r1, [r3, #0x11] - adds r0, r3, #0 -_080746CE: - adds r0, #0x37 - strb r1, [r0] - b _08074792 - .align 2, 0 -_080746D4: .4byte gPlayerState -_080746D8: - bl sub_08077B20 -_080746DC: - ldr r1, _08074700 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0x37 - ldrb r0, [r0] - cmp r0, #1 - bne _08074704 - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx - b _08074714 - .align 2, 0 -_08074700: .4byte gPlayerState -_08074704: - adds r0, r1, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074720 -_08074714: - ldr r0, _0807471C @ =0x00000161 - bl SoundReq - b _08074732 - .align 2, 0 -_0807471C: .4byte 0x00000161 -_08074720: - ldr r0, _08074760 @ =gRoomTransition - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08074732 - ldr r0, _08074764 @ =0x00000161 - bl SoundReq -_08074732: - ldr r2, _08074768 @ =gPlayerState - adds r1, r2, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0xf0 - strh r0, [r1] - adds r1, #0x28 - movs r0, #0x1b - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x37 - ldrb r0, [r0] - lsls r3, r0, #0x18 - lsrs r0, r3, #0x18 - cmp r0, #0xef - bhi _0807476C - subs r1, #0x69 - lsrs r0, r3, #0x1d - adds r0, #4 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - b _08074792 - .align 2, 0 -_08074760: .4byte gRoomTransition -_08074764: .4byte 0x00000161 -_08074768: .4byte gPlayerState -_0807476C: - ldr r2, _08074794 @ =gPlayerState - ldr r0, [r2, #0x30] - ldr r1, _08074798 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x20 - strb r0, [r1] - subs r0, #0x24 - bl ModHealth - bl RespawnPlayer -_08074792: - pop {r4, pc} - .align 2, 0 -_08074794: .4byte gPlayerState -_08074798: .4byte 0xFFFBFFFF - .syntax divided diff --git a/asm/non_matching/player/sub_08072D54.inc b/asm/non_matching/player/sub_08072D54.inc deleted file mode 100644 index 30ab4d8d..00000000 --- a/asm/non_matching/player/sub_08072D54.inc +++ /dev/null @@ -1,222 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08072D7A - adds r0, r4, #0 - bl LinearMoveUpdate - ldrb r0, [r4, #0xe] - subs r0, #1 - b _08072E80 -_08072D7A: - adds r0, r4, #0 - bl sub_0806F730 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl GetTileType - adds r2, r0, #0 - ldrb r5, [r4, #0xf] - cmp r5, #1 - beq _08072DD0 - cmp r5, #1 - bgt _08072D9C - cmp r5, #0 - beq _08072DA6 - b _08072E6C -_08072D9C: - cmp r5, #2 - beq _08072DFA - cmp r5, #3 - beq _08072E30 - b _08072E6C -_08072DA6: - ldr r1, _08072DC8 @ =sTileTable - ldr r0, _08072DCC @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072E6C - movs r0, #1 - strb r0, [r4, #0xe] - strb r0, [r4, #0xf] - b _08072E6C - .align 2, 0 -_08072DC8: .4byte sTileTable -_08072DCC: .4byte gPlayerEntity -_08072DD0: - ldr r1, _08072DEC @ =sTileTable - ldr r0, _08072DF0 @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072DF4 - strb r5, [r4, #0xe] - b _08072E6C - .align 2, 0 -_08072DEC: .4byte sTileTable -_08072DF0: .4byte gPlayerEntity -_08072DF4: - movs r0, #2 - strb r0, [r4, #0xf] - b _08072E6C -_08072DFA: - ldrb r0, [r4, #0x14] - movs r5, #4 - eors r0, r5 - strb r0, [r4, #0x14] - ldr r1, _08072E28 @ =sTileTable - ldr r0, _08072E2C @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072E22 - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xf] -_08072E22: - ldrb r0, [r4, #0x14] - eors r0, r5 - b _08072E6A - .align 2, 0 -_08072E28: .4byte sTileTable -_08072E2C: .4byte gPlayerEntity -_08072E30: - ldrb r0, [r4, #0x14] - movs r1, #4 - eors r0, r1 - strb r0, [r4, #0x14] - ldr r1, _08072E58 @ =sTileTable - ldr r0, _08072E5C @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072E60 - movs r0, #1 - strb r0, [r4, #0xe] - b _08072E64 - .align 2, 0 -_08072E58: .4byte sTileTable -_08072E5C: .4byte gPlayerEntity -_08072E60: - movs r0, #4 - strb r0, [r4, #0xf] -_08072E64: - ldrb r0, [r4, #0x14] - movs r1, #4 - eors r0, r1 -_08072E6A: - strb r0, [r4, #0x14] -_08072E6C: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08072E7A - adds r0, r4, #0 - bl LinearMoveUpdate - b _08072E7E -_08072E7A: - bl UpdatePlayerMovement -_08072E7E: - movs r0, #0 -_08072E80: - strb r0, [r4, #0xe] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - cmp r0, #0 - bne _08072F10 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08072EAA - adds r0, r4, #0 - bl ResetCollisionLayer - b _08072EB0 -_08072EAA: - adds r0, r4, #0 - bl sub_08004542 -_08072EB0: - adds r0, r4, #0 - movs r1, #7 - bl sub_08008790 - ldr r5, _08072EDC @ =gPlayerState - ldrb r0, [r5, #0x14] - cmp r0, #0 - beq _08072EE0 - bl sub_08008B22 - cmp r0, #0 - beq _08072F10 - movs r0, #7 - strb r0, [r5, #0x11] - ldr r0, [r5, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08072F10 - bl SetPlayerActionNormal - b _08072F10 - .align 2, 0 -_08072EDC: .4byte gPlayerState -_08072EE0: - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08072EF4 - ldr r0, _08072EF0 @ =0x00000424 - b _08072EF8 - .align 2, 0 -_08072EF0: .4byte 0x00000424 -_08072EF4: - movs r0, #0x82 - lsls r0, r0, #4 -_08072EF8: - strh r0, [r5, #8] - movs r1, #0 - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - movs r0, #0x7d - bl SoundReq -_08072F10: - pop {r4, r5, pc} - .align 2, 0 - .syntax divided diff --git a/asm/non_matching/player/sub_08073584.inc b/asm/non_matching/player/sub_08073584.inc deleted file mode 100644 index caf4909f..00000000 --- a/asm/non_matching/player/sub_08073584.inc +++ /dev/null @@ -1,280 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, _080735DC @ =gPlayerState - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _080735C0 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _080735C0 - adds r0, r6, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _080735C0 - ldr r0, [r6, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _080735E0 -_080735C0: - ldrb r0, [r6, #2] - movs r1, #0x40 - orrs r1, r0 - strb r1, [r6, #2] - bl sub_0807921C - adds r0, r4, #0 - bl DoJump - movs r0, #0xe6 - lsls r0, r0, #3 - strh r0, [r6, #8] - b _08073794 - .align 2, 0 -_080735DC: .4byte gPlayerState -_080735E0: - ldr r0, _0807360C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #1 - strb r1, [r0] - movs r0, #0 - bl sub_0807A2F8 - cmp r0, #0 - beq _08073610 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08073794 - .align 2, 0 -_0807360C: .4byte gUnk_0200AF00 -_08073610: - ldr r0, _08073620 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073624 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08073626 - .align 2, 0 -_08073620: .4byte gArea -_08073624: - strh r5, [r4, #0x24] -_08073626: - ldr r3, _08073650 @ =gPlayerState - ldrb r1, [r3, #0xd] - movs r0, #0x80 - ands r0, r1 - adds r2, r4, #0 - adds r2, #0x80 - cmp r0, #0 - bne _0807365A - ldrb r0, [r4, #0x15] - cmp r0, r1 - beq _0807365A - ldrb r1, [r3, #0xd] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _08073654 - ldr r0, [r2] - subs r0, #0x20 - b _08073658 - .align 2, 0 -_08073650: .4byte gPlayerState -_08073654: - ldr r0, [r2] - adds r0, #0x20 -_08073658: - str r0, [r2] -_0807365A: - ldr r0, [r2] - lsrs r0, r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - bl UpdatePlayerMovement - ldrb r2, [r4, #0x14] - lsls r3, r2, #2 - ldrb r1, [r4, #0x15] - cmp r2, #0 - bne _0807367C - adds r3, #8 - movs r0, #0x1f - ands r3, r0 - adds r1, #8 - ands r1, r0 -_0807367C: - subs r0, r3, #7 - cmp r0, r1 - bls _08073686 - subs r3, r2, #2 - b _0807368E -_08073686: - adds r0, r3, #7 - cmp r0, r1 - bhs _08073694 - adds r3, r2, #2 -_0807368E: - movs r0, #7 - ands r3, r0 - b _08073696 -_08073694: - adds r3, r2, #0 -_08073696: - movs r0, #0x87 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r4, #0x14] - cmp r3, r1 - beq _080736A8 - movs r0, #0x14 - mov r2, ip - strb r0, [r2] -_080736A8: - strb r3, [r4, #0x14] - movs r5, #0 - ldr r1, _080736E4 @ =gPlayerState - ldrb r2, [r1, #0xd] - lsrs r3, r2, #2 - mov r6, ip - ldrb r0, [r6] - adds r6, r1, #0 - cmp r0, #0 - beq _080736CA - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08073736 - ldrb r0, [r4, #0x14] - cmp r0, r3 - beq _08073736 -_080736CA: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _080736FA - ldrb r2, [r4, #0x14] - cmp r2, r3 - beq _080736FA - movs r0, #4 - eors r0, r3 - cmp r2, r0 - bne _080736E8 - movs r5, #2 - b _080736FA - .align 2, 0 -_080736E4: .4byte gPlayerState -_080736E8: - movs r0, #6 - ands r0, r3 - adds r0, #2 - movs r1, #7 - ands r0, r1 - movs r5, #3 - cmp r2, r0 - bne _080736FA - movs r5, #1 -_080736FA: - ldr r1, _0807371C @ =gUnk_0811BC28 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _0807372C - ldr r0, _08073720 @ =gArea - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073724 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA - b _0807372E - .align 2, 0 -_0807371C: .4byte gUnk_0811BC28 -_08073720: .4byte gArea -_08073724: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _0807372E -_0807372C: - strh r0, [r6, #8] -_0807372E: - adds r0, r4, #0 - adds r0, #0x86 - strb r5, [r0] - b _08073762 -_08073736: - mov r2, ip - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ldr r1, _0807375C @ =gUnk_0811BC30 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _08073760 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _08073762 - .align 2, 0 -_0807375C: .4byte gUnk_0811BC30 -_08073760: - strh r0, [r6, #8] -_08073762: - ldr r0, [r4, #0x7c] - subs r1, r0, #1 - str r1, [r4, #0x7c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08073784 - ldr r2, _08073780 @ =gPlayerState - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C - b _08073794 - .align 2, 0 -_08073780: .4byte gPlayerState -_08073784: - adds r0, r1, #0 - movs r1, #0x14 - bl __divsi3 - ldr r2, _08073798 @ =0x0000FFF8 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r4, #0x36] -_08073794: - pop {r4, r5, r6, pc} - .align 2, 0 -_08073798: .4byte 0x0000FFF8 - .syntax divided diff --git a/asm/non_matching/player/sub_080740D8.inc b/asm/non_matching/player/sub_080740D8.inc deleted file mode 100644 index 7c4c6ca7..00000000 --- a/asm/non_matching/player/sub_080740D8.inc +++ /dev/null @@ -1,123 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080740EA - ldrb r0, [r4, #0x15] - b _080740F0 -_080740EA: - ldrb r1, [r4, #0x15] - movs r0, #0x10 - eors r0, r1 -_080740F0: - cmp r0, #8 - beq _08074128 - cmp r0, #8 - bhi _080740FE - cmp r0, #0 - beq _08074168 - b _0807418C -_080740FE: - cmp r0, #0x10 - beq _08074148 - cmp r0, #0x18 - bne _0807418C - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - ldrb r0, [r2, #2] - subs r1, r1, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074124 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074124: .4byte gRoomControls -_08074128: - ldr r2, [r4, #0x48] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrb r1, [r2, #2] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r3, _08074144 @ =gRoomControls - ldrh r1, [r3, #6] - subs r6, r0, r1 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074144: .4byte gRoomControls -_08074148: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074164 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - adds r0, r0, r1 - b _08074182 - .align 2, 0 -_08074164: .4byte gRoomControls -_08074168: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _080741A4 @ =gRoomControls - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - subs r0, r0, r1 -_08074182: - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r3, #8] - subs r5, r0, r1 -_0807418C: - ldr r2, _080741A8 @ =gUnk_080082DC - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080086B4 - cmp r0, #0 - beq _080741AC - adds r0, r4, #0 - bl LinearMoveUpdate - b _080741B0 - .align 2, 0 -_080741A4: .4byte gRoomControls -_080741A8: .4byte gUnk_080082DC -_080741AC: - movs r0, #1 - strb r0, [r4, #0xf] -_080741B0: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl GravityUpdate - cmp r0, #0 - bne _080741C2 - bl sub_0807921C -_080741C2: - pop {r4, r5, r6, pc} - .syntax divided diff --git a/asm/non_matching/player/sub_080751E8.inc b/asm/non_matching/player/sub_080751E8.inc deleted file mode 100644 index b90fbe8c..00000000 --- a/asm/non_matching/player/sub_080751E8.inc +++ /dev/null @@ -1,84 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r4, _08075230 @ =gPlayerScriptExecutionContext - adds r0, r4, #0 - movs r1, #0x24 - bl MemClear - str r6, [r4] - ldr r0, _08075234 @ =gPlayerEntity - adds r0, #0x84 - str r4, [r0] - ldr r2, _08075238 @ =gPlayerState - movs r1, #0 - movs r0, #0x1c - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r3, r2, #0 - adds r3, #0x39 - strb r1, [r3] - adds r0, #2 - strb r5, [r0] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - cmp r7, #0 - bne _08075240 - strb r7, [r3] - ldr r6, _0807523C @ =script_BedInLinksRoom - b _08075244 - .align 2, 0 -_08075230: .4byte gPlayerScriptExecutionContext -_08075234: .4byte gPlayerEntity -_08075238: .4byte gPlayerState -_0807523C: .4byte script_BedInLinksRoom -_08075240: - strb r4, [r3] - ldr r6, _08075290 @ =script_BedAtSimons -_08075244: - ldr r0, _08075294 @ =gPlayerState - adds r0, #0x39 - ldrb r0, [r0] - movs r1, #0 - cmp r0, #0 - bne _08075252 - movs r1, #2 -_08075252: - movs r0, #0x5b - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08075270 - ldr r0, _08075298 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - adds r1, r6, #0 - bl StartCutscene -_08075270: - ldr r4, _08075298 @ =gPlayerEntity - movs r1, #0xe - rsbs r1, r1, #0 - movs r2, #0x1c - rsbs r2, r2, #0 - adds r0, r4, #0 - bl CreateSpeechBubbleSleep - str r0, [r4, #0x6c] - cmp r0, #0 - beq _0807528C - movs r1, #3 - bl SetDefaultPriority -_0807528C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075290: .4byte script_BedAtSimons -_08075294: .4byte gPlayerState -_08075298: .4byte gPlayerEntity - .syntax divided diff --git a/asm/non_matching/playerItemPacciCane/CheckPlayerInactive.inc b/asm/non_matching/playerItemPacciCane/CheckPlayerInactive.inc deleted file mode 100644 index ecc53f93..00000000 --- a/asm/non_matching/playerItemPacciCane/CheckPlayerInactive.inc +++ /dev/null @@ -1,94 +0,0 @@ - .syntax unified - push {lr} - ldr r0, _08070614 @ =gInput - ldrh r1, [r0, #2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08070674 - ldr r0, _08070618 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _08070674 - ldr r0, _0807061C @ =gUnk_02034490 - ldrb r0, [r0] - cmp r0, #0 - bne _08070674 - ldr r0, _08070620 @ =gMessage - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08070674 - ldr r1, _08070624 @ =gSave - adds r0, r1, #0 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - beq _08070674 - adds r0, r1, #0 - adds r0, #0xf2 - ldrb r0, [r0] - cmp r0, #0 - beq _08070674 - ldr r1, _08070628 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - bne _08070674 - ldr r0, _0807062C @ =gPriorityHandler - ldrh r0, [r0, #8] - cmp r0, #0 - bne _08070674 - adds r2, r1, #0 - adds r2, #0xa8 - ldrb r0, [r2] - cmp r0, #0 - bne _08070630 - adds r0, r1, #0 - adds r0, #0xa9 - ldrb r0, [r0] - b _08070632 - .align 2, 0 -_08070614: .4byte gInput -_08070618: .4byte gFadeControl -_0807061C: .4byte gUnk_02034490 -_08070620: .4byte gMessage -_08070624: .4byte gSave -_08070628: .4byte gPlayerState -_0807062C: .4byte gPriorityHandler -_08070630: - ldrb r0, [r2] -_08070632: - subs r0, #0x12 - cmp r0, #0xa - bhi _08070678 - lsls r0, r0, #2 - ldr r1, _08070644 @ =_08070648 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08070644: .4byte _08070648 -_08070648: @ jump table - .4byte _08070674 @ case 0 - .4byte _08070674 @ case 1 - .4byte _08070678 @ case 2 - .4byte _08070674 @ case 3 - .4byte _08070674 @ case 4 - .4byte _08070678 @ case 5 - .4byte _08070678 @ case 6 - .4byte _08070678 @ case 7 - .4byte _08070678 @ case 8 - .4byte _08070678 @ case 9 - .4byte _08070674 @ case 10 -_08070674: - movs r0, #0 - b _0807067E -_08070678: - bl sub_080A4D88 - movs r0, #1 -_0807067E: - pop {pc} - .syntax divided diff --git a/src/player.c b/src/player.c index 6c0463f5..d09ae85b 100644 --- a/src/player.c +++ b/src/player.c @@ -322,25 +322,26 @@ extern u16 script_BedAtSimons; extern ScriptExecutionContext gPlayerScriptExecutionContext; -NONMATCH("asm/non_matching/playerItemPacciCane/CheckPlayerInactive.inc", u32 CheckPlayerInactive(void)) { - if (!((gInput.newKeys & START_BUTTON) == 0 || gFadeControl.active || gUnk_02034490.unk0 || - (gMessage.doTextBox & 0x7F) || gSave.stats.health == 0 || !gSave.fillerD0[34] || - gPlayerState.controlMode != CONTROL_ENABLED || gPriorityHandler.priority_timer != 0)) { - u32 tmp = gPlayerState.framestate ? gPlayerState.framestate : gPlayerState.framestate_last; - switch (tmp) { - case PL_STATE_DIE: - case PL_STATE_TALKEZLO: - case PL_STATE_ITEMGET: - case PL_STATE_DROWN: - case PL_STATE_STAIRS: - return 0; - } - sub_080A4D88(); - return 1; +u32 CheckPlayerInactive(void) { + u32 framestate; + if (((gInput.newKeys & START_BUTTON) == 0 || gFadeControl.active || gUnk_02034490.unk0 || + (gMessage.doTextBox & 0x7F) || gSave.stats.health == 0 || !gSave.fillerD0[34] || + gPlayerState.controlMode != 0 || gPriorityHandler.priority_timer != 0)) { + return 0; } - return 0; + + framestate = gPlayerState.framestate == 0 ? gPlayerState.framestate_last : gPlayerState.framestate; + switch (framestate) { + case PL_STATE_DIE: + case PL_STATE_TALKEZLO: + case PL_STATE_ITEMGET: + case PL_STATE_DROWN: + case PL_STATE_STAIRS: + return 0; + } + sub_080A4D88(); + return 1; } -END_NONMATCH void DoPlayerAction(Entity* this) { static void (*const sPlayerActions[])(Entity*) = { @@ -1173,12 +1174,80 @@ static void PortalShrinkInit(Entity* this) { SoundReq(SFX_PLY_SHRINKING); } -static const u8 gUnk_0811BABC[] = { - 1, 1, 1, 1, 2, 4, 8, 16, -}; +void PortalShrinkUpdate(Entity* this) { + static const u8 gUnk_0811BABC[] = { + 1, 1, 1, 1, 2, 4, 8, 16, + }; + int iVar3; + u32 uVar5; + u32 uVar7; + u32 uVar8; -// horrible -/*static*/ ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShrinkUpdate(Entity* this)); + if (this->field_0x80.HALF.HI) { + uVar7 = (u32)((*(int*)&this->field_0x80 + 0x80) * 0x100000) >> 0x17; + } else { + uVar7 = (0x10 / (((this->field_0x80.HALF.LO >> 6) ^ 3) + 1)) >> 1; + } + uVar5 = *(u32*)&this->cutsceneBeh; + if (uVar5 >= 0x101) { + uVar5 = (uVar5 + 0x80) * 0x100000 >> 0x17; + } else { + if (uVar5 == 0x100) { + uVar5 = 0x10; + } else { + uVar5 = gUnk_0811BABC[uVar5 >> 5]; + } + } + iVar3 = 0x10000; + + switch (this->frame) { + case 1: + this->spritePriority.b1 = 0; + if (0x80 < *(u32*)&this->field_0x80) { + *(u32*)&this->field_0x80 -= uVar7; + } + *(u32*)&this->cutsceneBeh += uVar5 * 2; + this->y.WORD += iVar3 * 2; + break; + case 2: + *(u32*)&this->field_0x80 += uVar7; + uVar8 = *(u32*)&this->cutsceneBeh; + if (uVar8 >= 0x101) { + + if (uVar8 < 0x180) { + uVar5 = uVar5 >> 1; + } + if (uVar8 - uVar5 < 0x100) { + *(u32*)&this->cutsceneBeh = 0x100; + } else { + *(u32*)&this->cutsceneBeh = uVar8 - uVar5; + } + } else { + if (0x80 < uVar8) { + *(u32*)&this->cutsceneBeh = uVar8 - uVar5; + } + } + this->z.WORD = this->z.WORD - iVar3; + + break; + case 3: + if (*(u32*)&this->field_0x80 < 0x340) { + *(u32*)&this->field_0x80 += uVar7; + } + if (*(u32*)&this->cutsceneBeh >= 0x340) { + this->actionDelay = 8; + this->field_0xf = 0x1e; + this->subAction = 6; + } else { + *(u32*)&this->cutsceneBeh += uVar5 * 2; + } + this->z.WORD = this->z.WORD - iVar3 * 2; + break; + } + + sub_0805EC9C(this, *(u32*)&this->field_0x80, *(u32*)&this->cutsceneBeh, 0); + UpdateAnimationSingleFrame(this); +} /*static*/ void PortalEnterUpdate(Entity* this) { if (this->actionDelay == 0) { @@ -2311,17 +2380,16 @@ static const u16* const sTileTable[] = { sTiles + 9, }; -/*static*/ NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* this)) { - u32 bVar1; +void sub_08072D54(Entity* this) { u32 uVar2; UpdateAnimationSingleFrame(this); sub_0806F854(this, 0, -12); if (this->actionDelay != 0) { LinearMoveUpdate(this); + this->actionDelay--; } else { - uVar2 = sub_0806F730(this); - uVar2 = GetTileType(uVar2, this->collisionLayer); + uVar2 = GetTileType(sub_0806F730(this), this->collisionLayer); switch (this->field_0xf) { case 0: if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1])) { @@ -2332,14 +2400,8 @@ static const u16* const sTileTable[] = { case 1: if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1])) { this->actionDelay = 1; - this->field_0xf = 1; - } - break; - case 3: - if (this->actionDelay == 0) { - UpdatePlayerMovement(); } else { - LinearMoveUpdate(this); + this->field_0xf = 2; } break; case 2: @@ -2348,14 +2410,16 @@ static const u16* const sTileTable[] = { this->actionDelay = 1; this->field_0xf = 3; } + this->animationState ^= 4; break; - default: + case 3: this->animationState ^= 4; if (sub_08007DD6(uVar2, sTileTable[gPlayerEntity.animationState >> 1])) { - this->field_0xf = 4; - } else { this->actionDelay = 1; + } else { + this->field_0xf = 4; } + this->animationState ^= 4; break; } @@ -2367,7 +2431,6 @@ static const u16* const sTileTable[] = { this->actionDelay = 0; } - this->actionDelay = bVar1; if (!GravityUpdate(this, GRAVITY_RATE)) { COLLISION_ON(this); if (this->collisionLayer == 1) { @@ -2377,7 +2440,7 @@ static const u16* const sTileTable[] = { } sub_08008790(this, 7); if (gPlayerState.field_0x14 != 0) { - if (sub_08008B22() == 0) { + if (sub_08008B22()) { gPlayerState.field_0x11 = 7; if (!(gPlayerState.flags & PL_MINISH)) { SetPlayerActionNormal(); @@ -2396,7 +2459,6 @@ static const u16* const sTileTable[] = { } } } -END_NONMATCH /*static*/ void sub_08072F14(Entity* this) { if (--this->actionDelay != 0xff) { @@ -2729,8 +2791,8 @@ static const u16 gUnk_0811BC30[] = { 0x0720, }; -/*static*/ NONMATCH("asm/non_matching/player/sub_08073584.inc", void sub_08073584(Entity* this)) { - u32 state, dir, tmp, tmp2, idx; +void sub_08073584(Entity* this) { + u32 state, dir, idx; if ((gPlayerState.field_0x92 & 0x80) || this->iframes > 0 || gPlayerState.field_0x3c[0] || (gPlayerState.flags & PL_PARACHUTE) == 0) { @@ -2740,6 +2802,7 @@ static const u16 gUnk_0811BC30[] = { gPlayerState.animation = 1840; return; } + gUnk_0200AF00.filler25[10] = 1; if (sub_0807A2F8(0)) { this->subAction++; @@ -2747,16 +2810,18 @@ static const u16 gUnk_0811BC30[] = { COLLISION_OFF(this); return; } + if (gArea.locationIndex == 16) - this->speed = 256; + this->speed = 0x100; else - this->speed = 128; + this->speed = 0x80; + if ((gPlayerState.field_0xd & 0x80) == 0) { if (this->direction != gPlayerState.field_0xd) { - if (((this->direction - gPlayerState.field_0xd) & 0x1F) <= 0xF) - *(u32*)&this->field_0x80 -= 32; + if (((this->direction - gPlayerState.field_0xd) & 0x1F) < 0x10) + *(u32*)&this->field_0x80 -= 0x20; else - *(u32*)&this->field_0x80 += 32; + *(u32*)&this->field_0x80 += 0x20; } } this->direction = (*(u32*)&this->field_0x80 >> 8) & 0x1F; @@ -2767,26 +2832,30 @@ static const u16 gUnk_0811BC30[] = { state = (state + 8) & 0x1F; dir = (dir + 8) & 0x1F; } + if (state - 7 > dir) { - tmp = (this->animationState - 2) & 7; + state = (this->animationState - 2) & 7; } else if (state + 7 < dir) { - tmp = (this->animationState + 2) & 7; + state = (this->animationState + 2) & 7; } else { - tmp = this->animationState; + state = this->animationState; } - if (tmp != this->animationState) { + + if (state != this->animationState) { this->field_0x86.HALF.HI = 20; } - this->animationState = tmp; + + this->animationState = state; idx = 0; - tmp2 = gPlayerState.field_0xd >> 2; - if (!this->field_0x86.HALF.HI || ((gPlayerState.field_0xd & 0x80) == 0 && this->animationState != tmp2)) { + state = gPlayerState.field_0xd >> 2; + if (!this->field_0x86.HALF.HI || ((gPlayerState.field_0xd & 0x80) == 0 && this->animationState != state)) { if ((gPlayerState.field_0xd & 0x80) == 0) { - if (this->animationState != tmp2) { - if (this->animationState == (tmp2 ^ 4)) { + if (this->animationState != state) { + if (this->animationState == (state ^ 4)) { idx = 2; } else { - if (this->animationState == (((tmp2 & 6) + 2) & 7)) { + + if (this->animationState == (((state & 6) + 2) & 7)) { idx = 1; } else { idx = 3; @@ -2794,6 +2863,7 @@ static const u16 gUnk_0811BC30[] = { } } } + if (gUnk_0811BC28[idx] == gPlayerState.animation) { if (gArea.locationIndex == 16) sub_080042BA(this, 2); @@ -2804,13 +2874,13 @@ static const u16 gUnk_0811BC30[] = { } this->field_0x86.HALF.LO = idx; } else { - this->field_0x86.HALF.HI--; if (gUnk_0811BC30[this->field_0x86.HALF.LO] == gPlayerState.animation) UpdateAnimationSingleFrame(this); else gPlayerState.animation = gUnk_0811BC30[this->field_0x86.HALF.LO]; } + if (--this->field_0x7c.WORD == -1) { gPlayerState.jump_status |= 0x40; sub_0807921C(); @@ -2819,7 +2889,6 @@ static const u16 gUnk_0811BC30[] = { this->z.HALF.HI = -8 - di; } } -END_NONMATCH /*static*/ void sub_0807379C(Entity* this) { if (this->z.HALF.HI > -32) { @@ -3244,55 +3313,42 @@ static void sub_08074060(Entity* this) { } } -/*static*/ NONMATCH("asm/non_matching/player/sub_080740D8.inc", void sub_080740D8(Entity* this)) { - int v1; // r5 - int v2; // r6 - unsigned int v4; // r0 - Hitbox* v5; // r2 - int v6; // r0 +void sub_080740D8(Entity* this) { + int y; + int x; + u32 dir; UpdateAnimationSingleFrame(this); if (!this->field_0xf) - v4 = this->direction; + dir = this->direction; else - v4 = this->direction ^ 0x10; - switch (v4) { + dir = DirectionTurnAround(this->direction); + switch (dir) { case 24: - v5 = this->hitbox; - v2 = this->x.HALF.HI - v5->unk2[0] + v5->offset_x - gRoomControls.origin_x; - v6 = this->y.HALF.HI; - v1 = v6 + v5->offset_y - gRoomControls.origin_y; + x = this->x.HALF.HI - this->hitbox->unk2[0] + this->hitbox->offset_x - gRoomControls.origin_x; + y = this->y.HALF.HI + this->hitbox->offset_y - gRoomControls.origin_y; break; case 8: - v5 = this->hitbox; - v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.origin_x; - v6 = this->y.HALF.HI; - v1 = v6 + v5->offset_y - gRoomControls.origin_y; + x = this->x.HALF.HI + this->hitbox->unk2[0] + this->hitbox->offset_x - gRoomControls.origin_x; + y = this->y.HALF.HI + this->hitbox->offset_y - gRoomControls.origin_y; break; case 16: - v5 = this->hitbox; - v2 = this->x.HALF.HI + v5->offset_x - gRoomControls.origin_x; - v6 = this->y.HALF.HI + v5->unk2[3]; - v1 = v6 + v5->offset_y - gRoomControls.origin_y; + x = this->x.HALF.HI + this->hitbox->offset_x - gRoomControls.origin_x; + y = this->y.HALF.HI + this->hitbox->unk2[3] + this->hitbox->offset_y - gRoomControls.origin_y; break; case 0: - v5 = this->hitbox; - v2 = this->x.HALF.HI + v5->unk2[0] + v5->offset_x - gRoomControls.origin_x; - v6 = this->y.HALF.HI; - v1 = v6 + v5->offset_y - gRoomControls.origin_y; - break; - default: + x = this->x.HALF.HI + this->hitbox->offset_x - gRoomControls.origin_x; + y = this->y.HALF.HI - this->hitbox->unk2[3] + this->hitbox->offset_y - gRoomControls.origin_y; break; } - if (sub_080086B4(v2, v1, gUnk_080082DC)) + if (sub_080086B4(x, y, gUnk_080082DC)) LinearMoveUpdate(this); else this->field_0xf = 1; if (!GravityUpdate(this, GRAVITY_RATE)) sub_0807921C(); } -END_NONMATCH u32 sub_080741C4(void) { if ((gPlayerState.jump_status && (gPlayerState.jump_status & 7) != 3) || gPlayerEntity.z.WORD != 0) { @@ -3511,7 +3567,53 @@ void SurfaceAction_SlopeGndWater(Entity* this) { } } -ASM_FUNC("asm/non_matching/player/SurfaceAction_Swamp.inc", void SurfaceAction_Swamp(Entity* this)); +void SurfaceAction_Swamp(Entity* this) { + if (sub_080741C4()) { + gPlayerState.field_0x11 = 0; + gPlayerState.field_0x37 = 0; + return; + } + + if (this->health) { + if (sub_08079C30(this) == 0) { + gPlayerState.field_0x11 = 0; + gPlayerState.field_0x37 = 0; + return; + } + if ((gPlayerState.flags & 0x80) == 0) { + if (gPlayerState.dash_state) { + if ((gPlayerState.dash_state & 0x40) != 0) { + gPlayerState.field_0x11 = 0; + gPlayerState.field_0x37 = 0; + return; + } + } else { + sub_08077B20(); + } + + if (gPlayerState.field_0x37 == 1) { + CreateObjectWithParent(this, OBJECT_70, 0, 0); + CreateFx(this, FX_GREEN_SPLASH, 0); + SoundReq(SFX_161); + } else if ((gPlayerState.field_0x92 & 0xf00) != 0) { + SoundReq(SFX_161); + } else if ((gRoomTransition.frameCount & 0xf) == 0) { + SoundReq(SFX_161); + } + gPlayerState.speed_modifier -= 0xf0; + gPlayerState.framestate = 0x1b; + if (gPlayerState.field_0x37 < 0xf0) { + gPlayerState.field_0x3f = gPlayerState.field_0x3f + 4 + (gPlayerState.field_0x37 >> 5); + return; + } + } + } + gPlayerState.flags &= ~PL_ROLLING; + CreateFx(this, FX_GREEN_SPLASH, 0); + this->iframes = 0x20; + ModHealth(-4); + RespawnPlayer(); +} void SurfaceAction_Water(Entity* this) { if (!sub_080741C4()) { @@ -3988,9 +4090,7 @@ void sub_080751B4(Entity* this) { } } -// regalloc -NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u32 a2, void* script)) { - void* tmp; +void sub_080751E8(u32 a1, u32 a2, void* script) { Entity* e; Entity* e2; @@ -4009,15 +4109,15 @@ NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u gPlayerState.flags |= PL_NO_CAP; if (!a1) { gPlayerState.field_0x39 = 0; - tmp = &script_BedInLinksRoom; + script = &script_BedInLinksRoom; } else { gPlayerState.field_0x39 = 1; - tmp = &script_BedAtSimons; + script = &script_BedAtSimons; } e = CreateObject(OBJECT_5B, !gPlayerState.field_0x39 ? 2 : 0, 0); if (e != NULL) { CopyPosition(&gPlayerEntity, e); - StartCutscene(e, tmp); + StartCutscene(e, script); } e2 = CreateSpeechBubbleSleep(&gPlayerEntity, -14, -28); *(Entity**)&gPlayerEntity.field_0x6c.HWORD = e2; @@ -4025,7 +4125,6 @@ NONMATCH("asm/non_matching/player/sub_080751E8.inc", void sub_080751E8(u32 a1, u SetDefaultPriority(e2, PRIO_NO_BLOCK); } } -END_NONMATCH void sub_0807529C(Entity* this) { CreateSpeechBubbleQuestionMark(this, 8, -32);