mirror of https://github.com/zeldaret/tmc.git
				
				
				
			poggers
This commit is contained in:
		
							parent
							
								
									e0e05b1728
								
							
						
					
					
						commit
						bf919c8006
					
				
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							| 
						 | 
				
			
			@ -38,7 +38,7 @@ MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
 | 
			
		|||
ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1
 | 
			
		||||
 | 
			
		||||
CC1             := tools/agbcc/bin/agbcc
 | 
			
		||||
override CFLAGS += -Wimplicit -Wparentheses -Werror -O2 
 | 
			
		||||
override CFLAGS += -Wimplicit -Wparentheses -Werror -O2
 | 
			
		||||
# -fhex-asm
 | 
			
		||||
 | 
			
		||||
ifeq ($(DINFO),1)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ InitializeLink: @ 0x080524A8
 | 
			
		|||
	adds r1, r6, #0
 | 
			
		||||
	adds r1, #0x40
 | 
			
		||||
	movs r2, #0x40
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	ldr r4, _08052518 @ =gLinkEntity
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	movs r1, #0x88
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,295 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
	
 | 
			
		||||
	.text
 | 
			
		||||
	
 | 
			
		||||
	thumb_func_start sub_080041E8
 | 
			
		||||
sub_080041E8: @ 0x080041E8
 | 
			
		||||
	subs r0, r0, r2
 | 
			
		||||
	subs r1, r1, r3
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080041EC
 | 
			
		||||
sub_080041EC: @ 0x080041EC
 | 
			
		||||
	adds r2, r0, #0
 | 
			
		||||
	muls r0, r2, r0
 | 
			
		||||
	adds r3, r1, #0
 | 
			
		||||
	muls r1, r3, r1
 | 
			
		||||
	push {lr}
 | 
			
		||||
	adds r0, r0, r1
 | 
			
		||||
	lsls r0, r0, #8
 | 
			
		||||
	bl Sqrt
 | 
			
		||||
	pop {r3}
 | 
			
		||||
	bx r3
 | 
			
		||||
 | 
			
		||||
	non_word_aligned_thumb_func_start sub_08004202
 | 
			
		||||
sub_08004202: @ 0x08004202
 | 
			
		||||
	push {r1, lr}
 | 
			
		||||
	ldrb r1, [r0, #0x14]
 | 
			
		||||
	bl sub_08004212
 | 
			
		||||
	pop {r0}
 | 
			
		||||
	str r1, [r0]
 | 
			
		||||
	adds r0, r2, #0
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
	non_word_aligned_thumb_func_start sub_08004212
 | 
			
		||||
sub_08004212: @ 0x08004212
 | 
			
		||||
	push {r4}
 | 
			
		||||
	adds r4, r1, #0
 | 
			
		||||
	movs r3, #3
 | 
			
		||||
	tst r4, r3
 | 
			
		||||
	beq _08004226
 | 
			
		||||
	movs r3, #2
 | 
			
		||||
	lsrs r4, r4, #3
 | 
			
		||||
	blo _08004224
 | 
			
		||||
	rsbs r3, r3, #0
 | 
			
		||||
_08004224:
 | 
			
		||||
	adds r2, r2, r3
 | 
			
		||||
_08004226:
 | 
			
		||||
	adds r4, r1, #0
 | 
			
		||||
	movs r3, #3
 | 
			
		||||
	ands r4, r3
 | 
			
		||||
	cmp r4, #2
 | 
			
		||||
	beq _0800423C
 | 
			
		||||
	movs r3, #0x80
 | 
			
		||||
	adds r1, #1
 | 
			
		||||
	lsrs r1, r1, #3
 | 
			
		||||
	bhs _0800423A
 | 
			
		||||
	rsbs r3, r3, #0
 | 
			
		||||
_0800423A:
 | 
			
		||||
	adds r2, r2, r3
 | 
			
		||||
_0800423C:
 | 
			
		||||
	ldr r3, _08004390 @ =0x00001FFF
 | 
			
		||||
	ands r2, r3
 | 
			
		||||
	movs r4, #0x38
 | 
			
		||||
	ldrb r4, [r0, r4]
 | 
			
		||||
	lsls r4, r4, #3
 | 
			
		||||
	ldr r3, _08004394 @ =gUnk_08000228
 | 
			
		||||
	adds r3, r3, r4
 | 
			
		||||
	ldr r4, [r3]
 | 
			
		||||
	ldrh r1, [r4, r2]
 | 
			
		||||
	ldr r4, _08004398 @ =0x00004000
 | 
			
		||||
	tst r1, r4
 | 
			
		||||
	bne _0800425C
 | 
			
		||||
	lsls r1, r1, #0x11
 | 
			
		||||
	lsrs r1, r1, #0x10
 | 
			
		||||
	ldr r4, [r3, #4]
 | 
			
		||||
	ldrh r1, [r4, r1]
 | 
			
		||||
_0800425C:
 | 
			
		||||
	pop {r4}
 | 
			
		||||
	bx lr
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_08004260
 | 
			
		||||
sub_08004260: @ 0x08004260
 | 
			
		||||
	movs r2, #0x58
 | 
			
		||||
	strb r1, [r0, r2]
 | 
			
		||||
	ldrh r3, [r0, #0x12]
 | 
			
		||||
	lsls r3, r3, #4
 | 
			
		||||
	ldr r2, _0800439C @ =gUnk_080029B4
 | 
			
		||||
	ldr r2, [r2, r3]
 | 
			
		||||
	lsls r1, r1, #2
 | 
			
		||||
	ldr r1, [r2, r1]
 | 
			
		||||
	str r1, [r0, #0x5c]
 | 
			
		||||
	b _0800432A
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_08004274
 | 
			
		||||
sub_08004274: @ 0x08004274
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
 | 
			
		||||
	non_word_aligned_thumb_func_start sub_08004276
 | 
			
		||||
sub_08004276: @ 0x08004276
 | 
			
		||||
	movs r3, #0x59
 | 
			
		||||
	ldrb r2, [r0, r3]
 | 
			
		||||
	subs r2, r2, r1
 | 
			
		||||
	beq _0800432A
 | 
			
		||||
	ble _08004284
 | 
			
		||||
	strb r2, [r0, r3]
 | 
			
		||||
	bx lr
 | 
			
		||||
_08004284:
 | 
			
		||||
	ldr r1, [r0, #0x5c]
 | 
			
		||||
_08004286:
 | 
			
		||||
	ldrb r3, [r1, #1]
 | 
			
		||||
	adds r2, r2, r3
 | 
			
		||||
	bgt _0800429C
 | 
			
		||||
	ldrb r3, [r1, #3]
 | 
			
		||||
	adds r1, #4
 | 
			
		||||
	lsrs r3, r3, #8
 | 
			
		||||
	blo _08004286
 | 
			
		||||
	ldrb r3, [r1]
 | 
			
		||||
	lsls r3, r3, #2
 | 
			
		||||
	subs r1, r1, r3
 | 
			
		||||
	b _08004286
 | 
			
		||||
_0800429C:
 | 
			
		||||
	str r1, [r0, #0x5c]
 | 
			
		||||
	push {r2, lr}
 | 
			
		||||
	bl _0800432A
 | 
			
		||||
	pop {r2, r3}
 | 
			
		||||
	movs r1, #0x59
 | 
			
		||||
	strb r2, [r0, r1]
 | 
			
		||||
	bx r3
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080042AC
 | 
			
		||||
sub_080042AC: @ 0x080042AC
 | 
			
		||||
	push {lr}
 | 
			
		||||
	bl sub_08004260
 | 
			
		||||
	movs r2, #0xff
 | 
			
		||||
	strb r2, [r0, #0x1f]
 | 
			
		||||
	b _080042C0
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080042B8
 | 
			
		||||
sub_080042B8: @ 0x080042B8
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
 | 
			
		||||
	non_word_aligned_thumb_func_start sub_080042BA
 | 
			
		||||
sub_080042BA: @ 0x080042BA
 | 
			
		||||
	push {lr}
 | 
			
		||||
	bl sub_08004276
 | 
			
		||||
_080042C0:
 | 
			
		||||
	pop {r1}
 | 
			
		||||
	mov lr, r1
 | 
			
		||||
	ldrb r1, [r0, #0x1e]
 | 
			
		||||
	ldrb r3, [r0, #0x1f]
 | 
			
		||||
	strb r1, [r0, #0x1f]
 | 
			
		||||
	cmp r1, r3
 | 
			
		||||
	beq _08004328
 | 
			
		||||
	ldrh r2, [r0, #0x12]
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080042D0
 | 
			
		||||
sub_080042D0: @ 0x080042D0
 | 
			
		||||
	cmp r1, #0xff
 | 
			
		||||
	beq _08004328
 | 
			
		||||
	lsls r2, r2, #4
 | 
			
		||||
	lsls r3, r1, #2
 | 
			
		||||
	ldr r1, _080043A0 @ =gUnk_080029B4
 | 
			
		||||
	adds r1, r1, r2
 | 
			
		||||
	ldr r2, [r1, #4]
 | 
			
		||||
	cmp r2, #0
 | 
			
		||||
	beq _08004328
 | 
			
		||||
	ldr r1, [r1, #8]
 | 
			
		||||
	adds r2, r2, r3
 | 
			
		||||
	ldrb r3, [r2]
 | 
			
		||||
	cmp r3, #0
 | 
			
		||||
	beq _08004328
 | 
			
		||||
	push {r4, r5}
 | 
			
		||||
	movs r3, #0x26
 | 
			
		||||
	ldrb r3, [r0, r3]
 | 
			
		||||
	movs r4, #0xc
 | 
			
		||||
	muls r3, r4, r3
 | 
			
		||||
	ldr r4, _080043A4 @ =gUnk_02024494
 | 
			
		||||
	adds r4, r4, r3
 | 
			
		||||
	ldrb r3, [r4]
 | 
			
		||||
	movs r5, #0xf
 | 
			
		||||
	ands r3, r5
 | 
			
		||||
	cmp r3, #5
 | 
			
		||||
	blo _08004326
 | 
			
		||||
	ldrb r5, [r4, #6]
 | 
			
		||||
	ldrb r3, [r2]
 | 
			
		||||
	strb r3, [r4, #6]
 | 
			
		||||
	subs r5, r5, r3
 | 
			
		||||
	ldrh r3, [r2, #2]
 | 
			
		||||
	lsls r3, r3, #5
 | 
			
		||||
	adds r1, r1, r3
 | 
			
		||||
	ldr r2, [r4, #8]
 | 
			
		||||
	str r1, [r4, #8]
 | 
			
		||||
	subs r2, r2, r1
 | 
			
		||||
	orrs r5, r2
 | 
			
		||||
	beq _08004326
 | 
			
		||||
	movs r2, #0xf0
 | 
			
		||||
	ldrb r1, [r4]
 | 
			
		||||
	bics r1, r2
 | 
			
		||||
	adds r1, #0x30
 | 
			
		||||
	strb r1, [r4]
 | 
			
		||||
_08004326:
 | 
			
		||||
	pop {r4, r5}
 | 
			
		||||
_08004328:
 | 
			
		||||
	bx lr
 | 
			
		||||
_0800432A:
 | 
			
		||||
	ldrb r3, [r0, #0x1e]
 | 
			
		||||
	strb r3, [r0, #0x1f]
 | 
			
		||||
	ldr r1, [r0, #0x5c]
 | 
			
		||||
	ldrb r3, [r1]
 | 
			
		||||
	strb r3, [r0, #0x1e]
 | 
			
		||||
	ldrb r3, [r1, #1]
 | 
			
		||||
	movs r2, #0x59
 | 
			
		||||
	strb r3, [r0, r2]
 | 
			
		||||
	ldrb r3, [r1, #2]
 | 
			
		||||
	movs r2, #0x5b
 | 
			
		||||
	strb r3, [r0, r2]
 | 
			
		||||
	ldrb r3, [r1, #3]
 | 
			
		||||
	movs r2, #0x5a
 | 
			
		||||
	strb r3, [r0, r2]
 | 
			
		||||
	adds r1, #4
 | 
			
		||||
	lsrs r3, r3, #8
 | 
			
		||||
	blo _08004352
 | 
			
		||||
	ldrb r3, [r1]
 | 
			
		||||
	lsls r3, r3, #2
 | 
			
		||||
	subs r1, r1, r3
 | 
			
		||||
_08004352:
 | 
			
		||||
	str r1, [r0, #0x5c]
 | 
			
		||||
	bx lr
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_08004358: .4byte gUnk_081326EC
 | 
			
		||||
_0800435C: .4byte gUnk_02024048
 | 
			
		||||
_08004360: .4byte gUnk_02021F20
 | 
			
		||||
_08004364: .4byte gUnk_02024048
 | 
			
		||||
_08004368: .4byte gUnk_03000BF0
 | 
			
		||||
_0800436C: .4byte 0x0000016E
 | 
			
		||||
_08004370: .4byte 0x0000011E
 | 
			
		||||
_08004374: .4byte gUnk_03000BF6
 | 
			
		||||
_08004378: .4byte gUnk_03000BF8
 | 
			
		||||
_0800437C: .4byte 0x000003F0
 | 
			
		||||
_08004380: .4byte gUnk_08000248
 | 
			
		||||
_08004384: .4byte 0x000FFFFF
 | 
			
		||||
_08004388: .4byte 0x00080000
 | 
			
		||||
_0800438C: .4byte 0x0000EE00
 | 
			
		||||
_08004390: .4byte 0x00001FFF
 | 
			
		||||
_08004394: .4byte gUnk_08000228
 | 
			
		||||
_08004398: .4byte 0x00004000
 | 
			
		||||
_0800439C: .4byte gUnk_080029B4
 | 
			
		||||
_080043A0: .4byte gUnk_080029B4
 | 
			
		||||
_080043A4: .4byte gUnk_02024494
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080043A8
 | 
			
		||||
sub_080043A8: @ 0x080043A8
 | 
			
		||||
	movs r1, #0xb
 | 
			
		||||
	b _080043B6
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080043AC
 | 
			
		||||
sub_080043AC: @ 0x080043AC
 | 
			
		||||
	movs r1, #0xc
 | 
			
		||||
	b _080043B6
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080043B0
 | 
			
		||||
sub_080043B0: @ 0x080043AC
 | 
			
		||||
	movs r1, #0x52
 | 
			
		||||
	b _080043B6
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080043B4
 | 
			
		||||
sub_080043B4: @ 0x080043B4
 | 
			
		||||
	movs r1, #0
 | 
			
		||||
_080043B6:
 | 
			
		||||
	push {r4, lr}
 | 
			
		||||
	adds r4, r0, #0
 | 
			
		||||
	movs r0, #0xf
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	bl CreateObject
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _080043E0
 | 
			
		||||
	movs r1, #0x48
 | 
			
		||||
	ldr r1, [r4, r1]
 | 
			
		||||
	ldrh r3, [r4, #0x2e]
 | 
			
		||||
	strh r3, [r0, #0x2e]
 | 
			
		||||
	ldrh r3, [r4, #0x32]
 | 
			
		||||
	strh r3, [r0, #0x32]
 | 
			
		||||
	ldrh r3, [r4, #0x36]
 | 
			
		||||
	strh r3, [r0, #0x36]
 | 
			
		||||
	ldrb r3, [r4, #8]
 | 
			
		||||
	cmp r3, #3
 | 
			
		||||
	bne _080043E0
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	strb r1, [r0, #0xb]
 | 
			
		||||
_080043E0:
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0805E7BC
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
| 
						 | 
				
			
			@ -1425,7 +1425,7 @@ _080178AE:
 | 
			
		|||
	movs r1, #1
 | 
			
		||||
_080178B4:
 | 
			
		||||
	rsbs r0, r1, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	adds r5, r0, #0
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	movs r1, #0x7a
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	.text
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_08018500
 | 
			
		||||
| 
						 | 
				
			
			@ -7308,7 +7308,7 @@ _0801BC7A:
 | 
			
		|||
	bl sub_080A3268
 | 
			
		||||
_0801BC98:
 | 
			
		||||
	adds r0, r5, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	adds r0, #0x68
 | 
			
		||||
	ldrb r1, [r0]
 | 
			
		||||
| 
						 | 
				
			
			@ -7386,7 +7386,7 @@ _0801BD40:
 | 
			
		|||
	movs r3, #2
 | 
			
		||||
	bl sub_080A2988
 | 
			
		||||
	movs r0, #0x20
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	b _0801BD6C
 | 
			
		||||
_0801BD54:
 | 
			
		||||
	ldr r1, _0801BD88 @ =gUnk_02002A40
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										96413
									
								
								asm/code_0801D714.s
								
								
								
								
							
							
						
						
									
										96413
									
								
								asm/code_0801D714.s
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -7841,7 +7841,7 @@ sub_0804E864: @ 0x0804E864
 | 
			
		|||
	movs r1, #6
 | 
			
		||||
	bl sub_080751E8
 | 
			
		||||
	movs r0, #0xa0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	pop {pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0804E888: .4byte gLinkEntity
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7219
									
								
								asm/code_08052620.s
								
								
								
								
							
							
						
						
									
										7219
									
								
								asm/code_08052620.s
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -1594,7 +1594,7 @@ sub_08056BDC: @ 0x08056BDC
 | 
			
		|||
	ldr r1, _08056C28 @ =gUnk_02000D00
 | 
			
		||||
	movs r2, #0xd0
 | 
			
		||||
	lsls r2, r2, #4
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	bl sub_08056F70
 | 
			
		||||
	adds r1, r4, #0
 | 
			
		||||
	adds r1, #0x9e
 | 
			
		||||
| 
						 | 
				
			
			@ -17052,26 +17052,3 @@ _0805E364: .4byte 0x00000275
 | 
			
		|||
_0805E368: .4byte 0x0000026F
 | 
			
		||||
_0805E36C: .4byte 0x00000272
 | 
			
		||||
_0805E370: .4byte gUnk_02000070
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0805E374
 | 
			
		||||
sub_0805E374: @ 0x0805E374
 | 
			
		||||
	push {lr}
 | 
			
		||||
	adds r2, r0, #0
 | 
			
		||||
	ldr r0, _0805E394 @ =gUnk_030010A0
 | 
			
		||||
	adds r0, #0x2c
 | 
			
		||||
	ldrb r0, [r0]
 | 
			
		||||
	ldr r1, _0805E398 @ =gUnk_081091F8
 | 
			
		||||
	cmp r0, #2
 | 
			
		||||
	beq _0805E386
 | 
			
		||||
	ldr r1, _0805E39C @ =gUnk_081091EE
 | 
			
		||||
_0805E386:
 | 
			
		||||
	ldrb r0, [r2, #8]
 | 
			
		||||
	adds r0, r1, r0
 | 
			
		||||
	ldrb r1, [r0]
 | 
			
		||||
	adds r0, r2, #0
 | 
			
		||||
	bl sub_0805E3A0
 | 
			
		||||
	pop {pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0805E394: .4byte gUnk_030010A0
 | 
			
		||||
_0805E398: .4byte gUnk_081091F8
 | 
			
		||||
_0805E39C: .4byte gUnk_081091EE
 | 
			
		||||
| 
						 | 
				
			
			@ -2001,7 +2001,7 @@ sub_0805F5CC: @ 0x0805F5CC
 | 
			
		|||
	lsls r3, r3, #1
 | 
			
		||||
	ands r2, r3
 | 
			
		||||
	lsls r2, r2, #3
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	adds r0, r6, #0
 | 
			
		||||
	movs r1, #0
 | 
			
		||||
	bl sub_0805F324
 | 
			
		||||
| 
						 | 
				
			
			@ -2444,7 +2444,7 @@ sub_0805F918: @ 0x0805F918
 | 
			
		|||
	bl sub_0805F8F8
 | 
			
		||||
	ldr r1, _0805F990 @ =gUnk_02036AD8
 | 
			
		||||
	movs r2, #0xe0
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	ldr r0, _0805F994 @ =gUnk_081092AC
 | 
			
		||||
	lsls r4, r4, #2
 | 
			
		||||
	adds r4, r4, r0
 | 
			
		||||
| 
						 | 
				
			
			@ -22362,16 +22362,16 @@ sub_08068F14: @ 0x08068F14
 | 
			
		|||
	cmp r0, #5
 | 
			
		||||
	bne _08068F24
 | 
			
		||||
	movs r0, #0xa0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_08068F24:
 | 
			
		||||
	ldrb r0, [r4, #0xe]
 | 
			
		||||
	cmp r0, #6
 | 
			
		||||
	bne _08068F38
 | 
			
		||||
	movs r0, #0xa0
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_08068F38:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
| 
						 | 
				
			
			@ -22383,7 +22383,7 @@ sub_08068F3C: @ 0x08068F3C
 | 
			
		|||
	cmp r0, #6
 | 
			
		||||
	bne _08068F4A
 | 
			
		||||
	movs r0, #0xa0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_08068F4A:
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -36607,47 +36607,3 @@ _0806F9E6:
 | 
			
		|||
	pop {r4, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0806F9EC
 | 
			
		||||
sub_0806F9EC: @ 0x0806F9EC
 | 
			
		||||
	push {lr}
 | 
			
		||||
	lsls r0, r0, #0x10
 | 
			
		||||
	asrs r0, r0, #0x10
 | 
			
		||||
	lsls r1, r1, #0x10
 | 
			
		||||
	asrs r1, r1, #0x10
 | 
			
		||||
	muls r0, r1, r0
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bge _0806F9FE
 | 
			
		||||
	adds r0, #0xff
 | 
			
		||||
_0806F9FE:
 | 
			
		||||
	lsls r0, r0, #8
 | 
			
		||||
	asrs r0, r0, #0x10
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0806FA04
 | 
			
		||||
sub_0806FA04: @ 0x0806FA04
 | 
			
		||||
	push {lr}
 | 
			
		||||
	lsls r0, r0, #0x10
 | 
			
		||||
	lsrs r0, r0, #0x10
 | 
			
		||||
	lsls r1, r1, #0x10
 | 
			
		||||
	asrs r1, r1, #0x10
 | 
			
		||||
	cmp r1, #0
 | 
			
		||||
	beq _0806FA20
 | 
			
		||||
	lsls r0, r0, #0x10
 | 
			
		||||
	asrs r0, r0, #8
 | 
			
		||||
	bl __divsi3
 | 
			
		||||
	lsls r0, r0, #0x10
 | 
			
		||||
	asrs r0, r0, #0x10
 | 
			
		||||
	b _0806FA22
 | 
			
		||||
_0806FA20:
 | 
			
		||||
	movs r0, #0
 | 
			
		||||
_0806FA22:
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0806FA24
 | 
			
		||||
sub_0806FA24: @ 0x0806FA24
 | 
			
		||||
	push {lr}
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	movs r3, #0
 | 
			
		||||
	bl PositionRelative
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2458,7 +2458,7 @@ _08070CFC:
 | 
			
		|||
	movs r0, #0x20
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	subs r0, #0x22
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_08070D1A:
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
| 
						 | 
				
			
			@ -4574,7 +4574,7 @@ _08071D3A:
 | 
			
		|||
	cmp r4, #0
 | 
			
		||||
	beq _08071D74
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	movs r0, #3
 | 
			
		||||
	strb r0, [r5, #0xd]
 | 
			
		||||
| 
						 | 
				
			
			@ -5458,7 +5458,7 @@ sub_080723D0: @ 0x080723D0
 | 
			
		|||
	movs r0, #0x14
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	subs r0, #0x16
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	bl sub_08079458
 | 
			
		||||
_0807240A:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
| 
						 | 
				
			
			@ -5491,7 +5491,7 @@ sub_0807240C: @ 0x0807240C
 | 
			
		|||
	str r0, [r2, #0x30]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	bl sub_08079458
 | 
			
		||||
_08072448:
 | 
			
		||||
	pop {pc}
 | 
			
		||||
| 
						 | 
				
			
			@ -5553,7 +5553,7 @@ _080724AE:
 | 
			
		|||
	strb r1, [r0]
 | 
			
		||||
	movs r0, #8
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	bl sub_080791D0
 | 
			
		||||
_080724C2:
 | 
			
		||||
	pop {pc}
 | 
			
		||||
| 
						 | 
				
			
			@ -8930,7 +8930,7 @@ _08073E9E:
 | 
			
		|||
	strb r0, [r1]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	movs r0, #0x7a
 | 
			
		||||
	bl sub_080A3268
 | 
			
		||||
_08073EDC:
 | 
			
		||||
| 
						 | 
				
			
			@ -9798,7 +9798,7 @@ sub_0807450C: @ 0x0807450C
 | 
			
		|||
	bne _08074568
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	movs r0, #0x7a
 | 
			
		||||
	bl sub_080A3268
 | 
			
		||||
	movs r0, #0x18
 | 
			
		||||
| 
						 | 
				
			
			@ -10107,7 +10107,7 @@ _0807476C:
 | 
			
		|||
	movs r0, #0x20
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	subs r0, #0x24
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	bl sub_08079458
 | 
			
		||||
_08074792:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
| 
						 | 
				
			
			@ -17430,7 +17430,7 @@ _08077F20: .4byte gUnk_03003F80
 | 
			
		|||
	thumb_func_start sub_08077F24
 | 
			
		||||
sub_08077F24: @ 0x08077F24
 | 
			
		||||
	push {lr}
 | 
			
		||||
	ldr r2, _08077F34 @ =gUnk_02002AE8
 | 
			
		||||
	ldr r2, _08077F34 @ =gStats
 | 
			
		||||
	ldrb r3, [r0, #1]
 | 
			
		||||
	ldrb r0, [r2, #0xc]
 | 
			
		||||
	cmp r0, r3
 | 
			
		||||
| 
						 | 
				
			
			@ -17438,7 +17438,7 @@ sub_08077F24: @ 0x08077F24
 | 
			
		|||
	movs r2, #1
 | 
			
		||||
	b _08077F42
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_08077F34: .4byte gUnk_02002AE8
 | 
			
		||||
_08077F34: .4byte gStats
 | 
			
		||||
_08077F38:
 | 
			
		||||
	ldrb r0, [r2, #0xd]
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
| 
						 | 
				
			
			@ -19183,7 +19183,7 @@ sub_08078C24: @ 0x08078C24
 | 
			
		|||
	rsbs r0, r0, #0
 | 
			
		||||
	adds r1, #4
 | 
			
		||||
	movs r2, #0x40
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	ldr r0, _08078CB0 @ =gUnk_03003DF0
 | 
			
		||||
	movs r1, #0xc4
 | 
			
		||||
	lsls r1, r1, #1
 | 
			
		||||
| 
						 | 
				
			
			@ -19799,7 +19799,7 @@ sub_080790E4: @ 0x080790E4
 | 
			
		|||
	strb r0, [r1]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	movs r0, #0x7a
 | 
			
		||||
	bl sub_080A3268
 | 
			
		||||
	b _08079182
 | 
			
		||||
| 
						 | 
				
			
			@ -23733,7 +23733,7 @@ _0807AE74:
 | 
			
		|||
	strb r0, [r1]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	movs r0, #0x7a
 | 
			
		||||
	bl sub_080A3268
 | 
			
		||||
_0807AEA8:
 | 
			
		||||
| 
						 | 
				
			
			@ -27149,117 +27149,4 @@ _0807C98C:
 | 
			
		|||
	bl LZ77UnCompWram
 | 
			
		||||
_0807C994:
 | 
			
		||||
	pop {pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0807C998
 | 
			
		||||
sub_0807C998: @ 0x0807C998
 | 
			
		||||
	push {r4, r5, lr}
 | 
			
		||||
	adds r5, r0, #0
 | 
			
		||||
	ldr r4, _0807C9CC @ =gUnk_0202CEB4
 | 
			
		||||
	ldr r1, [r5]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	ldr r0, _0807C9D0 @ =0xFFFFE000
 | 
			
		||||
	adds r4, r4, r0
 | 
			
		||||
	ldr r1, [r5, #4]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	ldr r4, _0807C9D4 @ =gUnk_02012654
 | 
			
		||||
	ldr r1, [r5, #8]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	ldr r0, _0807C9D0 @ =0xFFFFE000
 | 
			
		||||
	adds r4, r4, r0
 | 
			
		||||
	ldr r1, [r5, #0xc]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0807C9CC: .4byte gUnk_0202CEB4
 | 
			
		||||
_0807C9D0: .4byte 0xFFFFE000
 | 
			
		||||
_0807C9D4: .4byte gUnk_02012654
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0807C9D8
 | 
			
		||||
sub_0807C9D8: @ 0x0807C9D8
 | 
			
		||||
	push {r4, r5, lr}
 | 
			
		||||
	adds r5, r0, #0
 | 
			
		||||
	ldr r0, _0807CA0C @ =0x06004000
 | 
			
		||||
	ldr r1, [r5]
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	movs r0, #0xc0
 | 
			
		||||
	lsls r0, r0, #0x13
 | 
			
		||||
	ldr r1, [r5, #4]
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	ldr r0, _0807CA10 @ =0x06008000
 | 
			
		||||
	ldr r1, [r5, #8]
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	ldr r4, _0807CA14 @ =gUnk_020176E0
 | 
			
		||||
	ldr r1, [r5, #0xc]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0807C960
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	movs r1, #2
 | 
			
		||||
	movs r2, #0xd
 | 
			
		||||
	bl sub_0801D754
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0807CA0C: .4byte 0x06004000
 | 
			
		||||
_0807CA10: .4byte 0x06008000
 | 
			
		||||
_0807CA14: .4byte gUnk_020176E0
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0807CA18
 | 
			
		||||
sub_0807CA18: @ 0x0807CA18
 | 
			
		||||
	push {lr}
 | 
			
		||||
	ldr r0, _0807CA7C @ =gUnk_02002A40
 | 
			
		||||
	mov ip, r0
 | 
			
		||||
	ldrh r1, [r0]
 | 
			
		||||
	movs r0, #0x80
 | 
			
		||||
	lsls r0, r0, #1
 | 
			
		||||
	cmp r1, r0
 | 
			
		||||
	beq _0807CA66
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	mov r0, ip
 | 
			
		||||
	strb r2, [r0]
 | 
			
		||||
	movs r3, #1
 | 
			
		||||
	strb r3, [r0, #1]
 | 
			
		||||
	strb r3, [r0, #8]
 | 
			
		||||
	mov r1, ip
 | 
			
		||||
	adds r1, #0xaa
 | 
			
		||||
	movs r0, #0x18
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	adds r1, #1
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	subs r1, #0x23
 | 
			
		||||
	movs r0, #0x22
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	adds r1, #1
 | 
			
		||||
	movs r0, #0x15
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	mov r0, ip
 | 
			
		||||
	adds r0, #0x8a
 | 
			
		||||
	strb r2, [r0]
 | 
			
		||||
	adds r0, #1
 | 
			
		||||
	strb r2, [r0]
 | 
			
		||||
	adds r0, #5
 | 
			
		||||
	strb r3, [r0]
 | 
			
		||||
	adds r1, #3
 | 
			
		||||
	movs r0, #0x90
 | 
			
		||||
	strh r0, [r1]
 | 
			
		||||
	adds r1, #2
 | 
			
		||||
	movs r0, #0x38
 | 
			
		||||
	strh r0, [r1]
 | 
			
		||||
_0807CA66:
 | 
			
		||||
	mov r1, ip
 | 
			
		||||
	adds r1, #0x80
 | 
			
		||||
	ldrb r0, [r1]
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _0807CA78
 | 
			
		||||
	ldr r0, _0807CA80 @ =gUnk_0811E470
 | 
			
		||||
	movs r2, #5
 | 
			
		||||
	bl sub_0801D66C
 | 
			
		||||
_0807CA78:
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	pop {pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0807CA7C: .4byte gUnk_02002A40
 | 
			
		||||
_0807CA80: .4byte gUnk_0811E470
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
| 
						 | 
				
			
			@ -5069,7 +5069,7 @@ sub_0807F004: @ 0x0807F004
 | 
			
		|||
	push {lr}
 | 
			
		||||
	ldr r0, [r1]
 | 
			
		||||
	ldrh r0, [r0, #2]
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0807F010
 | 
			
		||||
| 
						 | 
				
			
			@ -7152,7 +7152,7 @@ sub_0807FEC8: @ 0x0807FEC8
 | 
			
		|||
	ldr r4, _0807FEEC @ =gUnk_03003FC0
 | 
			
		||||
	adds r1, r4, #0
 | 
			
		||||
	movs r2, #0x40
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	subs r4, #0x40
 | 
			
		||||
	ldr r1, [r5, #0x30]
 | 
			
		||||
	ldrh r0, [r1, #0x2e]
 | 
			
		||||
| 
						 | 
				
			
			@ -15301,7 +15301,7 @@ _08083D60:
 | 
			
		|||
	cmp r0, #0x63
 | 
			
		||||
	bne _08083DD0
 | 
			
		||||
	movs r0, #0xa0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	ldr r0, _08083DA8 @ =gUnk_02002A40
 | 
			
		||||
	adds r1, r0, #0
 | 
			
		||||
	adds r1, #0xa9
 | 
			
		||||
| 
						 | 
				
			
			@ -15329,7 +15329,7 @@ _08083D88:
 | 
			
		|||
	strb r0, [r1]
 | 
			
		||||
_08083DA0:
 | 
			
		||||
	movs r0, #0xa0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	b _08083DD0
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_08083DA8: .4byte gUnk_02002A40
 | 
			
		||||
| 
						 | 
				
			
			@ -67832,7 +67832,7 @@ _0809CD56:
 | 
			
		|||
	strb r0, [r4, #0xf]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	adds r0, r5, #0
 | 
			
		||||
	movs r1, #0x7a
 | 
			
		||||
	bl sub_0800449C
 | 
			
		||||
| 
						 | 
				
			
			@ -79691,161 +79691,4 @@ _080A2820:
 | 
			
		|||
_080A2828: .4byte gLinkEntity
 | 
			
		||||
_080A282C: .4byte gUnk_03003DC0
 | 
			
		||||
_080A2830: .4byte gUnk_02034490
 | 
			
		||||
_080A2834: .4byte gUnk_03003F80
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080A2838
 | 
			
		||||
sub_080A2838: @ 0x080A2838
 | 
			
		||||
	push {r4, lr}
 | 
			
		||||
	adds r4, r0, #0
 | 
			
		||||
	ldrb r2, [r4, #9]
 | 
			
		||||
	lsls r2, r2, #3
 | 
			
		||||
	ldr r0, _080A2858 @ =gUnk_08126798
 | 
			
		||||
	adds r2, r2, r0
 | 
			
		||||
	ldrb r1, [r4, #0xa]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080A285C
 | 
			
		||||
	cmp r0, #2
 | 
			
		||||
	bne _080A2856
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_08016A04
 | 
			
		||||
_080A2856:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_080A2858: .4byte gUnk_08126798
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080A285C
 | 
			
		||||
sub_080A285C: @ 0x080A285C
 | 
			
		||||
	push {r4, r5, lr}
 | 
			
		||||
	adds r4, r0, #0
 | 
			
		||||
	adds r5, r2, #0
 | 
			
		||||
	ldrb r3, [r4, #0x10]
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	ands r0, r3
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _080A2870
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	b _080A2958
 | 
			
		||||
_080A2870:
 | 
			
		||||
	ldrb r2, [r5]
 | 
			
		||||
	movs r0, #3
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _080A288C
 | 
			
		||||
	lsls r0, r2, #0x1c
 | 
			
		||||
	lsrs r0, r0, #0x1e
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	orrs r0, r3
 | 
			
		||||
	strb r0, [r4, #0x10]
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	b _080A2958
 | 
			
		||||
_080A288C:
 | 
			
		||||
	subs r0, #2
 | 
			
		||||
	lsls r0, r0, #0x18
 | 
			
		||||
	lsrs r0, r0, #0x18
 | 
			
		||||
	cmp r0, #1
 | 
			
		||||
	bhi _080A289C
 | 
			
		||||
	lsls r1, r1, #3
 | 
			
		||||
	ldr r0, [r5, #4]
 | 
			
		||||
	adds r5, r0, r1
 | 
			
		||||
_080A289C:
 | 
			
		||||
	ldrh r0, [r5, #2]
 | 
			
		||||
	lsls r0, r0, #0x16
 | 
			
		||||
	lsrs r2, r0, #0x16
 | 
			
		||||
	adds r1, r2, #0
 | 
			
		||||
	ldrb r0, [r5, #3]
 | 
			
		||||
	lsls r0, r0, #0x1c
 | 
			
		||||
	lsrs r0, r0, #0x1e
 | 
			
		||||
	cmp r0, #1
 | 
			
		||||
	beq _080A28BA
 | 
			
		||||
	cmp r0, #2
 | 
			
		||||
	bne _080A28C4
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	adds r0, #0x60
 | 
			
		||||
	strh r2, [r0]
 | 
			
		||||
	b _080A28D2
 | 
			
		||||
_080A28BA:
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	bl sub_080AE008
 | 
			
		||||
	b _080A28CA
 | 
			
		||||
_080A28C4:
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080ADF80
 | 
			
		||||
_080A28CA:
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _080A28D2
 | 
			
		||||
	movs r0, #0
 | 
			
		||||
	b _080A2958
 | 
			
		||||
_080A28D2:
 | 
			
		||||
	ldrh r0, [r5, #4]
 | 
			
		||||
	lsls r0, r0, #0x16
 | 
			
		||||
	lsrs r1, r0, #0x16
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0801D040
 | 
			
		||||
	movs r1, #0xff
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	adds r0, #0x58
 | 
			
		||||
	strb r1, [r0]
 | 
			
		||||
	adds r1, r4, #0
 | 
			
		||||
	adds r1, #0x40
 | 
			
		||||
	movs r0, #0x48
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	ldrh r0, [r5, #6]
 | 
			
		||||
	lsls r0, r0, #0x16
 | 
			
		||||
	lsrs r0, r0, #0x16
 | 
			
		||||
	strh r0, [r4, #0x12]
 | 
			
		||||
	ldrb r0, [r5, #5]
 | 
			
		||||
	movs r3, #3
 | 
			
		||||
	movs r1, #0x30
 | 
			
		||||
	ands r1, r0
 | 
			
		||||
	ldrb r2, [r4, #0x18]
 | 
			
		||||
	movs r0, #0x31
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strb r0, [r4, #0x18]
 | 
			
		||||
	ldrb r1, [r5, #7]
 | 
			
		||||
	lsls r1, r1, #0x1b
 | 
			
		||||
	movs r0, #0x29
 | 
			
		||||
	adds r0, r0, r4
 | 
			
		||||
	mov ip, r0
 | 
			
		||||
	lsrs r1, r1, #0x1d
 | 
			
		||||
	lsls r1, r1, #3
 | 
			
		||||
	ldrb r2, [r0]
 | 
			
		||||
	movs r0, #0x39
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	mov r1, ip
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	ldrb r1, [r5, #7]
 | 
			
		||||
	lsrs r1, r1, #5
 | 
			
		||||
	ands r1, r3
 | 
			
		||||
	ldrb r2, [r4, #0x18]
 | 
			
		||||
	movs r0, #4
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strb r0, [r4, #0x18]
 | 
			
		||||
	ldr r1, _080A295C @ =gUnk_08125104
 | 
			
		||||
	ldrb r0, [r5, #1]
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	adds r0, r0, r1
 | 
			
		||||
	ldr r0, [r0]
 | 
			
		||||
	str r0, [r4, #0x48]
 | 
			
		||||
	ldrb r0, [r5]
 | 
			
		||||
	lsls r0, r0, #0x1c
 | 
			
		||||
	lsrs r0, r0, #0x1e
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	ldrb r1, [r4, #0x10]
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strb r0, [r4, #0x10]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
_080A2958:
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_080A295C: .4byte gUnk_08125104
 | 
			
		||||
_080A2834: .4byte gUnk_03003F80
 | 
			
		||||
| 
						 | 
				
			
			@ -12219,7 +12219,7 @@ sub_080A881C: @ 0x080A881C
 | 
			
		|||
	strb r1, [r0, #0xf]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_080A884A:
 | 
			
		||||
	bl sub_0805E780
 | 
			
		||||
	b _080A8866
 | 
			
		||||
| 
						 | 
				
			
			@ -13676,7 +13676,7 @@ sub_080A9334: @ 0x080A9334
 | 
			
		|||
	beq _080A9368
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080A9488
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
| 
						 | 
				
			
			@ -15038,7 +15038,7 @@ sub_080A9D2C: @ 0x080A9D2C
 | 
			
		|||
	bne _080A9D56
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	ldr r0, _080A9D68 @ =gLinkEntity
 | 
			
		||||
	movs r1, #0x7a
 | 
			
		||||
	bl sub_0800449C
 | 
			
		||||
| 
						 | 
				
			
			@ -15252,7 +15252,7 @@ sub_080A9EBC: @ 0x080A9EBC
 | 
			
		|||
	movs r0, #0
 | 
			
		||||
	strb r0, [r4, #0xf]
 | 
			
		||||
	subs r0, #2
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080AF090
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
| 
						 | 
				
			
			@ -17487,7 +17487,7 @@ _080AAF94:
 | 
			
		|||
	movs r0, #8
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	subs r0, #0xc
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	movs r1, #0x7a
 | 
			
		||||
	bl sub_0800449C
 | 
			
		||||
| 
						 | 
				
			
			@ -17935,7 +17935,7 @@ sub_080AB2DC: @ 0x080AB2DC
 | 
			
		|||
	bne _080AB314
 | 
			
		||||
	movs r0, #4
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_080AB314:
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
| 
						 | 
				
			
			@ -19169,7 +19169,7 @@ _080ABC24:
 | 
			
		|||
_080ABC2A:
 | 
			
		||||
	movs r0, #4
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
_080ABC32:
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080A29BC
 | 
			
		||||
| 
						 | 
				
			
			@ -19182,7 +19182,7 @@ _080ABC3E:
 | 
			
		|||
	bne _080ABC52
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	bl sub_0805E780
 | 
			
		||||
_080ABC52:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
| 
						 | 
				
			
			@ -19232,7 +19232,7 @@ sub_080ABC90: @ 0x080ABC90
 | 
			
		|||
	beq _080ABCBE
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	bl sub_080526A0
 | 
			
		||||
	bl ModHealth
 | 
			
		||||
	ldr r0, _080ABCC0 @ =gLinkEntity
 | 
			
		||||
	movs r1, #0x7a
 | 
			
		||||
	bl sub_0800449C
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ sub_0801D630: @ 0x0801D630
 | 
			
		|||
_0801D64A:
 | 
			
		||||
	movs r0, #0
 | 
			
		||||
	adds r1, r3, #0
 | 
			
		||||
	bl sub_0801D610
 | 
			
		||||
	bl _DmaFill32
 | 
			
		||||
	b _0801D668
 | 
			
		||||
_0801D654:
 | 
			
		||||
	movs r0, #0
 | 
			
		||||
| 
						 | 
				
			
			@ -38,4 +38,5 @@ _0801D65E:
 | 
			
		|||
	bne _0801D65E
 | 
			
		||||
_0801D668:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	.text
 | 
			
		||||
	
 | 
			
		||||
	thumb_func_start sub_0804AA30
 | 
			
		||||
sub_0804AA30: @ 0x0804AA30
 | 
			
		||||
	push {r4, r5, r6, lr}
 | 
			
		||||
	adds r4, r0, #0
 | 
			
		||||
	adds r5, r1, #0
 | 
			
		||||
	adds r6, r4, #0
 | 
			
		||||
	adds r6, #0x41
 | 
			
		||||
	ldrb r1, [r6]
 | 
			
		||||
	movs r0, #0x7f
 | 
			
		||||
	ands r0, r1
 | 
			
		||||
	strb r0, [r6]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0800279C
 | 
			
		||||
	ldrb r2, [r6]
 | 
			
		||||
	movs r1, #0x80
 | 
			
		||||
	orrs r1, r2
 | 
			
		||||
	strb r1, [r6]
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	adds r0, r0, r5
 | 
			
		||||
	ldr r1, [r0]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl _call_via_r1
 | 
			
		||||
	pop {r4, r5, r6, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,63 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	.text
 | 
			
		||||
	
 | 
			
		||||
	thumb_func_start sub_0807CA18
 | 
			
		||||
sub_0807CA18: @ 0x0807CA18
 | 
			
		||||
	push {lr}
 | 
			
		||||
	ldr r0, _0807CA7C @ =gUnk_02002A40
 | 
			
		||||
	mov ip, r0
 | 
			
		||||
	ldrh r1, [r0]
 | 
			
		||||
	movs r0, #0x80
 | 
			
		||||
	lsls r0, r0, #1
 | 
			
		||||
	cmp r1, r0
 | 
			
		||||
	beq _0807CA66
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	mov r0, ip
 | 
			
		||||
	strb r2, [r0]
 | 
			
		||||
	movs r3, #1
 | 
			
		||||
	strb r3, [r0, #1]
 | 
			
		||||
	strb r3, [r0, #8]
 | 
			
		||||
	mov r1, ip
 | 
			
		||||
	adds r1, #0xaa
 | 
			
		||||
	movs r0, #0x18
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	adds r1, #1
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	subs r1, #0x23
 | 
			
		||||
	movs r0, #0x22
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	adds r1, #1
 | 
			
		||||
	movs r0, #0x15
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	mov r0, ip
 | 
			
		||||
	adds r0, #0x8a
 | 
			
		||||
	strb r2, [r0]
 | 
			
		||||
	adds r0, #1
 | 
			
		||||
	strb r2, [r0]
 | 
			
		||||
	adds r0, #5
 | 
			
		||||
	strb r3, [r0]
 | 
			
		||||
	adds r1, #3
 | 
			
		||||
	movs r0, #0x90
 | 
			
		||||
	strh r0, [r1]
 | 
			
		||||
	adds r1, #2
 | 
			
		||||
	movs r0, #0x38
 | 
			
		||||
	strh r0, [r1]
 | 
			
		||||
_0807CA66:
 | 
			
		||||
	mov r1, ip
 | 
			
		||||
	adds r1, #0x80
 | 
			
		||||
	ldrb r0, [r1]
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _0807CA78
 | 
			
		||||
	ldr r0, _0807CA80 @ =gUnk_0811E470
 | 
			
		||||
	movs r2, #5
 | 
			
		||||
	bl sub_0801D66C
 | 
			
		||||
_0807CA78:
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	pop {pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0807CA7C: .4byte gUnk_02002A40
 | 
			
		||||
_0807CA80: .4byte gUnk_0811E470
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
	
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	.text
 | 
			
		||||
	
 | 
			
		||||
	thumb_func_start sub_080A2838
 | 
			
		||||
sub_080A2838: @ 0x080A2838
 | 
			
		||||
	push {r4, lr}
 | 
			
		||||
	adds r4, r0, #0
 | 
			
		||||
	ldrb r2, [r4, #9]
 | 
			
		||||
	lsls r2, r2, #3
 | 
			
		||||
	ldr r0, _080A2858 @ =gUnk_08126798
 | 
			
		||||
	adds r2, r2, r0
 | 
			
		||||
	ldrb r1, [r4, #0xa]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080A285C
 | 
			
		||||
	cmp r0, #2
 | 
			
		||||
	bne _080A2856
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_08016A04
 | 
			
		||||
_080A2856:
 | 
			
		||||
	pop {r4, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_080A2858: .4byte gUnk_08126798
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,144 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
	
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	.text
 | 
			
		||||
	
 | 
			
		||||
	thumb_func_start sub_080A285C
 | 
			
		||||
sub_080A285C: @ 0x080A285C
 | 
			
		||||
	push {r4, r5, lr}
 | 
			
		||||
	adds r4, r0, #0
 | 
			
		||||
	adds r5, r2, #0
 | 
			
		||||
	ldrb r3, [r4, #0x10]
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	ands r0, r3
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _080A2870
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	b _080A2958
 | 
			
		||||
_080A2870:
 | 
			
		||||
	ldrb r2, [r5]
 | 
			
		||||
	movs r0, #3
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _080A288C
 | 
			
		||||
	lsls r0, r2, #0x1c
 | 
			
		||||
	lsrs r0, r0, #0x1e
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	orrs r0, r3
 | 
			
		||||
	strb r0, [r4, #0x10]
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	b _080A2958
 | 
			
		||||
_080A288C:
 | 
			
		||||
	subs r0, #2
 | 
			
		||||
	lsls r0, r0, #0x18
 | 
			
		||||
	lsrs r0, r0, #0x18
 | 
			
		||||
	cmp r0, #1
 | 
			
		||||
	bhi _080A289C
 | 
			
		||||
	lsls r1, r1, #3
 | 
			
		||||
	ldr r0, [r5, #4]
 | 
			
		||||
	adds r5, r0, r1
 | 
			
		||||
_080A289C:
 | 
			
		||||
	ldrh r0, [r5, #2]
 | 
			
		||||
	lsls r0, r0, #0x16
 | 
			
		||||
	lsrs r2, r0, #0x16
 | 
			
		||||
	adds r1, r2, #0
 | 
			
		||||
	ldrb r0, [r5, #3]
 | 
			
		||||
	lsls r0, r0, #0x1c
 | 
			
		||||
	lsrs r0, r0, #0x1e
 | 
			
		||||
	cmp r0, #1
 | 
			
		||||
	beq _080A28BA
 | 
			
		||||
	cmp r0, #2
 | 
			
		||||
	bne _080A28C4
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	adds r0, #0x60
 | 
			
		||||
	strh r2, [r0]
 | 
			
		||||
	b _080A28D2
 | 
			
		||||
_080A28BA:
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	movs r2, #0
 | 
			
		||||
	bl sub_080AE008
 | 
			
		||||
	b _080A28CA
 | 
			
		||||
_080A28C4:
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_080ADF80
 | 
			
		||||
_080A28CA:
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _080A28D2
 | 
			
		||||
	movs r0, #0
 | 
			
		||||
	b _080A2958
 | 
			
		||||
_080A28D2:
 | 
			
		||||
	ldrh r0, [r5, #4]
 | 
			
		||||
	lsls r0, r0, #0x16
 | 
			
		||||
	lsrs r1, r0, #0x16
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	bl sub_0801D040
 | 
			
		||||
	movs r1, #0xff
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	adds r0, #0x58
 | 
			
		||||
	strb r1, [r0]
 | 
			
		||||
	adds r1, r4, #0
 | 
			
		||||
	adds r1, #0x40
 | 
			
		||||
	movs r0, #0x48
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	ldrh r0, [r5, #6]
 | 
			
		||||
	lsls r0, r0, #0x16
 | 
			
		||||
	lsrs r0, r0, #0x16
 | 
			
		||||
	strh r0, [r4, #0x12]
 | 
			
		||||
	ldrb r0, [r5, #5]
 | 
			
		||||
	movs r3, #3
 | 
			
		||||
	movs r1, #0x30
 | 
			
		||||
	ands r1, r0
 | 
			
		||||
	ldrb r2, [r4, #0x18]
 | 
			
		||||
	movs r0, #0x31
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strb r0, [r4, #0x18]
 | 
			
		||||
	ldrb r1, [r5, #7]
 | 
			
		||||
	lsls r1, r1, #0x1b
 | 
			
		||||
	movs r0, #0x29
 | 
			
		||||
	adds r0, r0, r4
 | 
			
		||||
	mov ip, r0
 | 
			
		||||
	lsrs r1, r1, #0x1d
 | 
			
		||||
	lsls r1, r1, #3
 | 
			
		||||
	ldrb r2, [r0]
 | 
			
		||||
	movs r0, #0x39
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	mov r1, ip
 | 
			
		||||
	strb r0, [r1]
 | 
			
		||||
	ldrb r1, [r5, #7]
 | 
			
		||||
	lsrs r1, r1, #5
 | 
			
		||||
	ands r1, r3
 | 
			
		||||
	ldrb r2, [r4, #0x18]
 | 
			
		||||
	movs r0, #4
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	ands r0, r2
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strb r0, [r4, #0x18]
 | 
			
		||||
	ldr r1, _080A295C @ =gUnk_08125104
 | 
			
		||||
	ldrb r0, [r5, #1]
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	adds r0, r0, r1
 | 
			
		||||
	ldr r0, [r0]
 | 
			
		||||
	str r0, [r4, #0x48]
 | 
			
		||||
	ldrb r0, [r5]
 | 
			
		||||
	lsls r0, r0, #0x1c
 | 
			
		||||
	lsrs r0, r0, #0x1e
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	ldrb r1, [r4, #0x10]
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strb r0, [r4, #0x10]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
_080A2958:
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_080A295C: .4byte gUnk_08125104
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
 | 
			
		||||
#ifndef ITEM_H
 | 
			
		||||
#define ITEM_H
 | 
			
		||||
	enum ItemType
 | 
			
		||||
	enum
 | 
			
		||||
    {
 | 
			
		||||
        Untyped,
 | 
			
		||||
        SmithSword = 0x01,
 | 
			
		||||
| 
						 | 
				
			
			@ -122,5 +122,5 @@
 | 
			
		|||
        FastSpin = 0x73,
 | 
			
		||||
        FastSplit = 0x74,
 | 
			
		||||
        LongSpin = 0x75
 | 
			
		||||
    }
 | 
			
		||||
    } ItemType;
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
#ifndef STATS_H
 | 
			
		||||
#define STATS_H
 | 
			
		||||
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#include "item.h"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	u8 walletType;
 | 
			
		||||
	u8 heartPieces;
 | 
			
		||||
	u8 health;
 | 
			
		||||
	u8 maxHealth;
 | 
			
		||||
	u8 filler[8];
 | 
			
		||||
	u8 itemOnA;
 | 
			
		||||
	u8 itemonB;
 | 
			
		||||
	u8 filler2[10];
 | 
			
		||||
	u16 rupees;
 | 
			
		||||
	u8 filler3[12];
 | 
			
		||||
} Stats;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										18
									
								
								linker.ld
								
								
								
								
							
							
						
						
									
										18
									
								
								linker.ld
								
								
								
								
							| 
						 | 
				
			
			@ -30,7 +30,7 @@ SECTIONS {
 | 
			
		|||
        . = 0x00002AA0; gUnk_02002AA0 = .;
 | 
			
		||||
        . = 0x00002AC0; gUnk_02002AC0 = .;
 | 
			
		||||
        . = 0x00002AC8; gUnk_02002AC8 = .;
 | 
			
		||||
        . = 0x00002AE8; gUnk_02002AE8 = .;
 | 
			
		||||
        . = 0x00002AE8; gStats = .;
 | 
			
		||||
        . = 0x00002B0E; gUnk_02002B0E = .;
 | 
			
		||||
        . = 0x00002B32; gUnk_02002B32 = .;
 | 
			
		||||
        . = 0x00002B54; gUnk_02002B54 = .;
 | 
			
		||||
| 
						 | 
				
			
			@ -299,11 +299,13 @@ SECTIONS {
 | 
			
		|||
        /* C source compiled without interworking */
 | 
			
		||||
        asm/code_08018500.o(.text);
 | 
			
		||||
		src/sub_0801D5EC.o(.text);
 | 
			
		||||
		src/sub_0801D610.o(.text);
 | 
			
		||||
		src/_dmaFill32.o(.text);
 | 
			
		||||
		asm/sub_0801D630.o(.text);
 | 
			
		||||
		asm/sub_0801D66C.o(.text);
 | 
			
		||||
		asm/readKeyInput.o(.text);
 | 
			
		||||
		asm/code_0801D714.o(.text);
 | 
			
		||||
		asm/code_0801D79C.o(.text);
 | 
			
		||||
		asm/sub_0804AA30.o(.text);
 | 
			
		||||
		src/createEnemy.o(.text);
 | 
			
		||||
		src/sub_0804AA84.o(.text); /* wip */
 | 
			
		||||
		asm/code_0804AA84.o(.text);
 | 
			
		||||
| 
						 | 
				
			
			@ -320,22 +322,34 @@ SECTIONS {
 | 
			
		|||
		asm/code_08050038.o(.text);
 | 
			
		||||
		asm/initializeLink.o(.text);
 | 
			
		||||
		asm/code_08052620.o(.text);
 | 
			
		||||
		src/bitGetters.o(.text);
 | 
			
		||||
		src/modHealth.o(.text);
 | 
			
		||||
		asm/code_080526CC.o(.text);
 | 
			
		||||
		src/sub_08055E08.o(.text);
 | 
			
		||||
		asm/sub_08055E24.o(.text);
 | 
			
		||||
		asm/mainLoop.o(.text);
 | 
			
		||||
		asm/sub_08055F70.o(.text);
 | 
			
		||||
		asm/code_08055FF4.o(.text);
 | 
			
		||||
		src/sub_0805E374.o(.text);
 | 
			
		||||
		src/sub_0805E3A0.o(.text);
 | 
			
		||||
		asm/code_0805E3B0.o(.text);
 | 
			
		||||
		asm/getEmptyEntity.o(.text);
 | 
			
		||||
		asm/code_0805E744.o(.text);
 | 
			
		||||
		src/sub_0806F9EC.o(.text);
 | 
			
		||||
		src/sub_0806FA04.o(.text);
 | 
			
		||||
		src/sub_0806FA24.o(.text);
 | 
			
		||||
		src/sub_0806FA30.o(.text);
 | 
			
		||||
		src/positionRelative.o(.text);
 | 
			
		||||
		asm/code_0806FA6C.o(.text);
 | 
			
		||||
		src/sub_0807C998.o(.text);
 | 
			
		||||
		src/sub_0801D754.o(.text);
 | 
			
		||||
		asm/sub_0807CA18.o(.text);
 | 
			
		||||
		asm/getInventoryValue.o(.text);
 | 
			
		||||
		asm/code_0807CAA0.o(.text);
 | 
			
		||||
		src/getProgressFlag.o(.text);
 | 
			
		||||
		asm/code_0807CC3C.o(.text);
 | 
			
		||||
		asm/sub_080A2838.o(.text);
 | 
			
		||||
		asm/sub_080A285C.o(.text);
 | 
			
		||||
		src/createObject.o(.text);
 | 
			
		||||
		asm/sub_080A2988.o(.text);
 | 
			
		||||
		asm/createFx.o(.text);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
void sub_0801D610(u32 a1, u32 a2, u32 a3)
 | 
			
		||||
void _DmaFill32(u32 a1, u32 a2, u32 a3)
 | 
			
		||||
{
 | 
			
		||||
    DmaFill32(3, a1, a2, a3);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,32 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
extern u8 gUnk_02033A90;
 | 
			
		||||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
extern u8 gUnk_02033A90;
 | 
			
		||||
 | 
			
		||||
u32 sub_08052654()
 | 
			
		||||
{
 | 
			
		||||
    return (gUnk_02033A90 >> 7) & 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u32 sub_08052660()
 | 
			
		||||
{
 | 
			
		||||
    return (gUnk_02033A90 >> 2) & 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u32 sub_08052670()
 | 
			
		||||
{
 | 
			
		||||
    return (gUnk_02033A90 >> 4) & 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u32 sub_08052680()
 | 
			
		||||
{
 | 
			
		||||
    return (gUnk_02033A90 >> 6) & 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u32 sub_08052690()
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    return (gUnk_02033A90 >> 3) & 1;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
/* called when loading any room */
 | 
			
		||||
 | 
			
		||||
	extern void LoadRoomEntityList();
 | 
			
		||||
	extern s32 GetProgressFlag(u32 flag);
 | 
			
		||||
	void LoadRoomEntityList();
 | 
			
		||||
	s32 GetProgressFlag(u32 flag);
 | 
			
		||||
	extern s32* sub_0804B128(u8 unk);
 | 
			
		||||
	extern void sub_0804B058(s32 *unk);
 | 
			
		||||
	extern void sub_0804B1AC();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "stats.h"
 | 
			
		||||
 | 
			
		||||
extern Stats gStats;
 | 
			
		||||
extern Entity gLinkEntity;
 | 
			
		||||
s32 ModHealth(s32 deltaHealth)
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    s32 newHealth;
 | 
			
		||||
    
 | 
			
		||||
    newHealth = gStats.health + deltaHealth;
 | 
			
		||||
    if (newHealth < 0) {
 | 
			
		||||
        newHealth = 0;
 | 
			
		||||
    }
 | 
			
		||||
    if (gStats.maxHealth < newHealth) {
 | 
			
		||||
        newHealth = (u32)gStats.maxHealth;
 | 
			
		||||
    }
 | 
			
		||||
    gStats.health = newHealth;
 | 
			
		||||
    gLinkEntity.currentHealth = newHealth;
 | 
			
		||||
    return newHealth;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_0807C960();
 | 
			
		||||
extern u32 sub_0801D754(u32, u8, u8);
 | 
			
		||||
 | 
			
		||||
u32 sub_0807C9D8(u32 *a1)
 | 
			
		||||
{
 | 
			
		||||
  u32 *v1; // r5@1
 | 
			
		||||
 | 
			
		||||
  v1 = a1;
 | 
			
		||||
  sub_0807C960(0x6004000, *a1);
 | 
			
		||||
  sub_0807C960(0x6000000, v1[1]);
 | 
			
		||||
  sub_0807C960(0x6008000, v1[2]);
 | 
			
		||||
  sub_0807C960(0x20176E0, v1[3]);
 | 
			
		||||
  return sub_0801D754(0x20176E0, 2, 13);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
#include "entity.h"
 | 
			
		||||
extern Entity * sub_0805E3A0(Entity *, u32);
 | 
			
		||||
extern u8 gUnk_030010A0[];
 | 
			
		||||
extern u8 gUnk_081091F8[];
 | 
			
		||||
extern u8 gUnk_081091EE[];
 | 
			
		||||
Entity * sub_0805E374(Entity *param_1)
 | 
			
		||||
{
 | 
			
		||||
    u8 r3 = gUnk_030010A0[0x2C];
 | 
			
		||||
    u8 *array = gUnk_081091F8;
 | 
			
		||||
 | 
			
		||||
    if ( r3 != '\x02') {
 | 
			
		||||
        array = gUnk_081091EE;
 | 
			
		||||
    }
 | 
			
		||||
    return sub_0805E3A0(param_1,array[(param_1->entityType).type]);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
s32 sub_0806F9EC(s16 param_1,s16 param_2)
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    int iVar1;
 | 
			
		||||
    
 | 
			
		||||
    iVar1 = (s32)param_1 * (s32)param_2;
 | 
			
		||||
    if (iVar1 < 0) {
 | 
			
		||||
        iVar1 = iVar1 + 255;
 | 
			
		||||
    }
 | 
			
		||||
    return (iVar1 << 8) >> 16;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
extern s32 __divsi3(s32, s32);
 | 
			
		||||
 | 
			
		||||
s16 sub_0806FA04(s16 param_1,s16 param_2)
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    s16 sVar1;
 | 
			
		||||
    s32 iVar2;
 | 
			
		||||
    
 | 
			
		||||
    if (param_2 != 0) {
 | 
			
		||||
        sVar1 = __divsi3( (param_1 << 16) >> 8 ,param_2);
 | 
			
		||||
        iVar2 = sVar1;
 | 
			
		||||
    }
 | 
			
		||||
    else {
 | 
			
		||||
        iVar2 = 0;
 | 
			
		||||
    }
 | 
			
		||||
    return iVar2;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
void PositionRelative(Entity *, Entity *, s32, s32);
 | 
			
		||||
 | 
			
		||||
void sub_0806FA24(Entity *param_1,Entity *param_2)
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    PositionRelative(param_1, param_2, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
 | 
			
		||||
extern void sub_0807C960();
 | 
			
		||||
extern u32 gUnk_0202CEB4;
 | 
			
		||||
extern u32 gUnk_02012654;
 | 
			
		||||
 | 
			
		||||
void sub_0807C998(u32 *a1)
 | 
			
		||||
{
 | 
			
		||||
    sub_0807C960(&gUnk_0202CEB4, a1[0]);
 | 
			
		||||
    sub_0807C960(&gUnk_0202CEB4 - 0x800, a1[1]);
 | 
			
		||||
    sub_0807C960(&gUnk_02012654, a1[2]);
 | 
			
		||||
    sub_0807C960(&gUnk_02012654 - 0x800, a1[3]);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue