diff options
| author | YamaArashi <shadow962@live.com> | 2016-12-20 21:38:54 -0800 | 
|---|---|---|
| committer | YamaArashi <shadow962@live.com> | 2016-12-20 21:38:54 -0800 | 
| commit | 1ac916831f5d3f10270d3ac6755a95babc6750e5 (patch) | |
| tree | 9ec239fe45995a59d4d6efb616d5b0aa4263d61d | |
| parent | 84a56e095d21f7b70270af955da342771d7ff7c7 (diff) | |
split out smokescreen anim code and name some HP functions
| -rw-r--r-- | asm/rom_800D42C.s | 6 | ||||
| -rw-r--r-- | asm/rom_804373C.s | 231 | ||||
| -rw-r--r-- | asm/rom_806D7F8.s | 6 | ||||
| -rw-r--r-- | asm/smokescreen.s | 226 | ||||
| -rw-r--r-- | asm/trade.s | 4 | ||||
| -rw-r--r-- | ld_script.txt | 1 | 
6 files changed, 242 insertions, 232 deletions
| diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s index fdb390563..bd9b8d666 100644 --- a/asm/rom_800D42C.s +++ b/asm/rom_800D42C.s @@ -53325,7 +53325,7 @@ atkAC_remaininghptopower: @ 8028600  	movs r2, 0x2C  	ldrsh r1, [r1, r2]  	movs r2, 0x30 -	bl sub_80461D4 +	bl GetScaledHPFraction  	lsls r0, 24  	lsrs r1, r0, 24  	movs r3, 0 @@ -72968,7 +72968,7 @@ sub_80324F8: @ 80324F8  	lsls r1, 16  	asrs r1, 16  	adds r0, r4, 0 -	bl sub_8046200 +	bl GetHPBarLevel  	lsls r0, 24  	lsrs r0, 24  	cmp r0, 0x1 @@ -73098,7 +73098,7 @@ unref_sub_8032604: @ 8032604  	lsls r1, 16  	asrs r1, 16  	adds r0, r4, 0 -	bl sub_8046200 +	bl GetHPBarLevel  	lsls r0, 24  	lsrs r0, 24  	pop {r4,r5} diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s index 45f358c09..ab3a81e18 100644 --- a/asm/rom_804373C.s +++ b/asm/rom_804373C.s @@ -5442,8 +5442,8 @@ _080461C8:  	bx r1  	thumb_func_end sub_8046188 -	thumb_func_start sub_80461D4 -sub_80461D4: @ 80461D4 +	thumb_func_start GetScaledHPFraction +GetScaledHPFraction: @ 80461D4  	push {r4,lr}  	lsls r2, 24  	lsrs r2, 24 @@ -5465,10 +5465,10 @@ _080461F8:  	pop {r4}  	pop {r1}  	bx r1 -	thumb_func_end sub_80461D4 +	thumb_func_end GetScaledHPFraction -	thumb_func_start sub_8046200 -sub_8046200: @ 8046200 +	thumb_func_start GetHPBarLevel +GetHPBarLevel: @ 8046200  	push {lr}  	lsls r0, 16  	asrs r0, 16 @@ -5480,7 +5480,7 @@ sub_8046200: @ 8046200  	b _0804622E  _08046212:  	movs r2, 0x30 -	bl sub_80461D4 +	bl GetScaledHPFraction  	lsls r0, 24  	lsrs r1, r0, 24  	movs r0, 0x3 @@ -5495,223 +5495,6 @@ _08046212:  _0804622E:  	pop {r1}  	bx r1 -	thumb_func_end sub_8046200 - -	thumb_func_start sub_8046234 -sub_8046234: @ 8046234 -	push {r4-r7,lr} -	mov r7, r10 -	mov r6, r9 -	mov r5, r8 -	push {r5-r7} -	lsls r0, 16 -	lsrs r6, r0, 16 -	lsls r1, 16 -	lsrs r7, r1, 16 -	lsls r2, 24 -	lsrs r4, r2, 24 -	ldr r5, _0804636C @ =gUnknown_081FAEA4 -	ldrh r0, [r5, 0x6] -	bl GetSpriteTileStartByTag -	lsls r0, 16 -	ldr r1, _08046370 @ =0xffff0000 -	cmp r0, r1 -	bne _08046266 -	adds r0, r5, 0 -	bl LoadCompressedObjectPic -	ldr r0, _08046374 @ =gUnknown_081FAEAC -	bl LoadCompressedObjectPalette -_08046266: -	ldr r0, _08046378 @ =sub_8046388 -	bl object_new_hidden_with_callback -	mov r8, r0 -	mov r0, r8 -	lsls r0, 24 -	lsrs r0, 24 -	mov r8, r0 -	lsls r5, r0, 4 -	add r5, r8 -	lsls r5, 2 -	ldr r0, _0804637C @ =gSprites -	adds r5, r0 -	strh r4, [r5, 0x30] -	ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C -	mov r9, r0 -	lsls r6, 16 -	asrs r0, r6, 16 -	mov r10, r0 -	ldr r0, _08046384 @ =0xfff00000 -	adds r6, r0 -	asrs r6, 16 -	lsls r4, r7, 16 -	asrs r7, r4, 16 -	adds r4, r0 -	asrs r4, 16 -	mov r0, r9 -	adds r1, r6, 0 -	adds r2, r4, 0 -	movs r3, 0x2 -	bl CreateSprite -	lsls r0, 24 -	lsrs r0, 24 -	lsls r1, r0, 4 -	adds r1, r0 -	lsls r1, 2 -	ldr r0, _0804637C @ =gSprites -	adds r1, r0 -	mov r0, r8 -	strh r0, [r1, 0x2E] -	ldrh r0, [r5, 0x2E] -	adds r0, 0x1 -	strh r0, [r5, 0x2E] -	adds r0, r1, 0 -	bl AnimateSprite -	mov r0, r9 -	mov r1, r10 -	adds r2, r4, 0 -	movs r3, 0x2 -	bl CreateSprite -	lsls r0, 24 -	lsrs r0, 24 -	lsls r4, r0, 4 -	adds r4, r0 -	lsls r4, 2 -	ldr r0, _0804637C @ =gSprites -	adds r4, r0 -	mov r0, r8 -	strh r0, [r4, 0x2E] -	ldrh r0, [r5, 0x2E] -	adds r0, 0x1 -	strh r0, [r5, 0x2E] -	adds r0, r4, 0 -	movs r1, 0x1 -	bl StartSpriteAnim -	adds r0, r4, 0 -	bl AnimateSprite -	mov r0, r9 -	adds r1, r6, 0 -	adds r2, r7, 0 -	movs r3, 0x2 -	bl CreateSprite -	lsls r0, 24 -	lsrs r0, 24 -	lsls r4, r0, 4 -	adds r4, r0 -	lsls r4, 2 -	ldr r0, _0804637C @ =gSprites -	adds r4, r0 -	mov r0, r8 -	strh r0, [r4, 0x2E] -	ldrh r0, [r5, 0x2E] -	adds r0, 0x1 -	strh r0, [r5, 0x2E] -	adds r0, r4, 0 -	movs r1, 0x2 -	bl StartSpriteAnim -	adds r0, r4, 0 -	bl AnimateSprite -	mov r0, r9 -	mov r1, r10 -	adds r2, r7, 0 -	movs r3, 0x2 -	bl CreateSprite -	lsls r0, 24 -	lsrs r0, 24 -	lsls r4, r0, 4 -	adds r4, r0 -	lsls r4, 2 -	ldr r0, _0804637C @ =gSprites -	adds r4, r0 -	mov r0, r8 -	strh r0, [r4, 0x2E] -	ldrh r0, [r5, 0x2E] -	adds r0, 0x1 -	strh r0, [r5, 0x2E] -	adds r0, r4, 0 -	movs r1, 0x3 -	bl StartSpriteAnim -	adds r0, r4, 0 -	bl AnimateSprite -	mov r0, r8 -	pop {r3-r5} -	mov r8, r3 -	mov r9, r4 -	mov r10, r5 -	pop {r4-r7} -	pop {r1} -	bx r1 -	.align 2, 0 -_0804636C: .4byte gUnknown_081FAEA4 -_08046370: .4byte 0xffff0000 -_08046374: .4byte gUnknown_081FAEAC -_08046378: .4byte sub_8046388 -_0804637C: .4byte gSprites -_08046380: .4byte gSpriteTemplate_81FAF0C -_08046384: .4byte 0xfff00000 -	thumb_func_end sub_8046234 - -	thumb_func_start sub_8046388 -sub_8046388: @ 8046388 -	push {r4,lr} -	adds r4, r0, 0 -	movs r1, 0x2E -	ldrsh r0, [r4, r1] -	cmp r0, 0 -	bne _080463C0 -	ldr r0, _080463B4 @ =gUnknown_081FAEA4 -	ldrh r0, [r0, 0x6] -	bl FreeSpriteTilesByTag -	ldr r0, _080463B8 @ =gUnknown_081FAEAC -	ldrh r0, [r0, 0x4] -	bl FreeSpritePaletteByTag -	movs r1, 0x30 -	ldrsh r0, [r4, r1] -	cmp r0, 0 -	bne _080463BC -	adds r0, r4, 0 -	bl DestroySprite -	b _080463C0 -	.align 2, 0 -_080463B4: .4byte gUnknown_081FAEA4 -_080463B8: .4byte gUnknown_081FAEAC -_080463BC: -	ldr r0, _080463C8 @ =SpriteCallbackDummy -	str r0, [r4, 0x1C] -_080463C0: -	pop {r4} -	pop {r0} -	bx r0 -	.align 2, 0 -_080463C8: .4byte SpriteCallbackDummy -	thumb_func_end sub_8046388 - -	thumb_func_start sub_80463CC -sub_80463CC: @ 80463CC -	push {lr} -	adds r3, r0, 0 -	adds r0, 0x3F -	ldrb r1, [r0] -	movs r0, 0x10 -	ands r0, r1 -	cmp r0, 0 -	beq _080463F6 -	ldr r2, _080463FC @ =gSprites -	movs r0, 0x2E -	ldrsh r1, [r3, r0] -	lsls r0, r1, 4 -	adds r0, r1 -	lsls r0, 2 -	adds r0, r2 -	ldrh r1, [r0, 0x2E] -	subs r1, 0x1 -	strh r1, [r0, 0x2E] -	adds r0, r3, 0 -	bl DestroySprite -_080463F6: -	pop {r0} -	bx r0 -	.align 2, 0 -_080463FC: .4byte gSprites -	thumb_func_end sub_80463CC +	thumb_func_end GetHPBarLevel  	.align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s index 8f95428c3..d28aea9a8 100644 --- a/asm/rom_806D7F8.s +++ b/asm/rom_806D7F8.s @@ -19,7 +19,7 @@ sub_806D7F8: @ 806D7F8  	asrs r2, 16  	adds r0, r1, 0  	adds r1, r2, 0 -	bl sub_8046200 +	bl GetHPBarLevel  	lsls r0, 24  	lsrs r0, 24  	movs r2, 0 @@ -1812,7 +1812,7 @@ sub_806E574: @ 806E574  	asrs r3, 16  	adds r0, r2, 0  	adds r1, r3, 0 -	bl sub_8046200 +	bl GetHPBarLevel  	lsls r0, 24  	lsrs r3, r0, 24  	adds r4, r3, 0 @@ -4082,7 +4082,7 @@ sub_806F7E8: @ 806F7E8  	adds r0, r6, r2  	movs r4, 0  	ldrsh r0, [r0, r4] -	bl sub_8046200 +	bl GetHPBarLevel  	lsls r0, 24  	lsrs r2, r0, 24  	adds r3, r2, 0 diff --git a/asm/smokescreen.s b/asm/smokescreen.s new file mode 100644 index 000000000..1c5d9f2e9 --- /dev/null +++ b/asm/smokescreen.s @@ -0,0 +1,226 @@ +	.include "constants/gba_constants.inc" +	.include "constants/species_constants.inc" +	.include "asm/macros.inc" + +	.syntax unified + +	.text + +	thumb_func_start sub_8046234 +sub_8046234: @ 8046234 +	push {r4-r7,lr} +	mov r7, r10 +	mov r6, r9 +	mov r5, r8 +	push {r5-r7} +	lsls r0, 16 +	lsrs r6, r0, 16 +	lsls r1, 16 +	lsrs r7, r1, 16 +	lsls r2, 24 +	lsrs r4, r2, 24 +	ldr r5, _0804636C @ =gUnknown_081FAEA4 +	ldrh r0, [r5, 0x6] +	bl GetSpriteTileStartByTag +	lsls r0, 16 +	ldr r1, _08046370 @ =0xffff0000 +	cmp r0, r1 +	bne _08046266 +	adds r0, r5, 0 +	bl LoadCompressedObjectPic +	ldr r0, _08046374 @ =gUnknown_081FAEAC +	bl LoadCompressedObjectPalette +_08046266: +	ldr r0, _08046378 @ =sub_8046388 +	bl object_new_hidden_with_callback +	mov r8, r0 +	mov r0, r8 +	lsls r0, 24 +	lsrs r0, 24 +	mov r8, r0 +	lsls r5, r0, 4 +	add r5, r8 +	lsls r5, 2 +	ldr r0, _0804637C @ =gSprites +	adds r5, r0 +	strh r4, [r5, 0x30] +	ldr r0, _08046380 @ =gSpriteTemplate_81FAF0C +	mov r9, r0 +	lsls r6, 16 +	asrs r0, r6, 16 +	mov r10, r0 +	ldr r0, _08046384 @ =0xfff00000 +	adds r6, r0 +	asrs r6, 16 +	lsls r4, r7, 16 +	asrs r7, r4, 16 +	adds r4, r0 +	asrs r4, 16 +	mov r0, r9 +	adds r1, r6, 0 +	adds r2, r4, 0 +	movs r3, 0x2 +	bl CreateSprite +	lsls r0, 24 +	lsrs r0, 24 +	lsls r1, r0, 4 +	adds r1, r0 +	lsls r1, 2 +	ldr r0, _0804637C @ =gSprites +	adds r1, r0 +	mov r0, r8 +	strh r0, [r1, 0x2E] +	ldrh r0, [r5, 0x2E] +	adds r0, 0x1 +	strh r0, [r5, 0x2E] +	adds r0, r1, 0 +	bl AnimateSprite +	mov r0, r9 +	mov r1, r10 +	adds r2, r4, 0 +	movs r3, 0x2 +	bl CreateSprite +	lsls r0, 24 +	lsrs r0, 24 +	lsls r4, r0, 4 +	adds r4, r0 +	lsls r4, 2 +	ldr r0, _0804637C @ =gSprites +	adds r4, r0 +	mov r0, r8 +	strh r0, [r4, 0x2E] +	ldrh r0, [r5, 0x2E] +	adds r0, 0x1 +	strh r0, [r5, 0x2E] +	adds r0, r4, 0 +	movs r1, 0x1 +	bl StartSpriteAnim +	adds r0, r4, 0 +	bl AnimateSprite +	mov r0, r9 +	adds r1, r6, 0 +	adds r2, r7, 0 +	movs r3, 0x2 +	bl CreateSprite +	lsls r0, 24 +	lsrs r0, 24 +	lsls r4, r0, 4 +	adds r4, r0 +	lsls r4, 2 +	ldr r0, _0804637C @ =gSprites +	adds r4, r0 +	mov r0, r8 +	strh r0, [r4, 0x2E] +	ldrh r0, [r5, 0x2E] +	adds r0, 0x1 +	strh r0, [r5, 0x2E] +	adds r0, r4, 0 +	movs r1, 0x2 +	bl StartSpriteAnim +	adds r0, r4, 0 +	bl AnimateSprite +	mov r0, r9 +	mov r1, r10 +	adds r2, r7, 0 +	movs r3, 0x2 +	bl CreateSprite +	lsls r0, 24 +	lsrs r0, 24 +	lsls r4, r0, 4 +	adds r4, r0 +	lsls r4, 2 +	ldr r0, _0804637C @ =gSprites +	adds r4, r0 +	mov r0, r8 +	strh r0, [r4, 0x2E] +	ldrh r0, [r5, 0x2E] +	adds r0, 0x1 +	strh r0, [r5, 0x2E] +	adds r0, r4, 0 +	movs r1, 0x3 +	bl StartSpriteAnim +	adds r0, r4, 0 +	bl AnimateSprite +	mov r0, r8 +	pop {r3-r5} +	mov r8, r3 +	mov r9, r4 +	mov r10, r5 +	pop {r4-r7} +	pop {r1} +	bx r1 +	.align 2, 0 +_0804636C: .4byte gUnknown_081FAEA4 +_08046370: .4byte 0xffff0000 +_08046374: .4byte gUnknown_081FAEAC +_08046378: .4byte sub_8046388 +_0804637C: .4byte gSprites +_08046380: .4byte gSpriteTemplate_81FAF0C +_08046384: .4byte 0xfff00000 +	thumb_func_end sub_8046234 + +	thumb_func_start sub_8046388 +sub_8046388: @ 8046388 +	push {r4,lr} +	adds r4, r0, 0 +	movs r1, 0x2E +	ldrsh r0, [r4, r1] +	cmp r0, 0 +	bne _080463C0 +	ldr r0, _080463B4 @ =gUnknown_081FAEA4 +	ldrh r0, [r0, 0x6] +	bl FreeSpriteTilesByTag +	ldr r0, _080463B8 @ =gUnknown_081FAEAC +	ldrh r0, [r0, 0x4] +	bl FreeSpritePaletteByTag +	movs r1, 0x30 +	ldrsh r0, [r4, r1] +	cmp r0, 0 +	bne _080463BC +	adds r0, r4, 0 +	bl DestroySprite +	b _080463C0 +	.align 2, 0 +_080463B4: .4byte gUnknown_081FAEA4 +_080463B8: .4byte gUnknown_081FAEAC +_080463BC: +	ldr r0, _080463C8 @ =SpriteCallbackDummy +	str r0, [r4, 0x1C] +_080463C0: +	pop {r4} +	pop {r0} +	bx r0 +	.align 2, 0 +_080463C8: .4byte SpriteCallbackDummy +	thumb_func_end sub_8046388 + +	thumb_func_start sub_80463CC +sub_80463CC: @ 80463CC +	push {lr} +	adds r3, r0, 0 +	adds r0, 0x3F +	ldrb r1, [r0] +	movs r0, 0x10 +	ands r0, r1 +	cmp r0, 0 +	beq _080463F6 +	ldr r2, _080463FC @ =gSprites +	movs r0, 0x2E +	ldrsh r1, [r3, r0] +	lsls r0, r1, 4 +	adds r0, r1 +	lsls r0, 2 +	adds r0, r2 +	ldrh r1, [r0, 0x2E] +	subs r1, 0x1 +	strh r1, [r0, 0x2E] +	adds r0, r3, 0 +	bl DestroySprite +_080463F6: +	pop {r0} +	bx r0 +	.align 2, 0 +_080463FC: .4byte gSprites +	thumb_func_end sub_80463CC + +	.align 2, 0 @ Don't pad with nop. diff --git a/asm/trade.s b/asm/trade.s index 6a6b6ae30..87ee96d21 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -6137,7 +6137,7 @@ _0804AE5C:  	asrs r0, 16  	lsls r1, 16  	asrs r1, 16 -	bl sub_8046200 +	bl GetHPBarLevel  	ldr r1, [r7]  	adds r1, 0x69  	adds r1, r6 @@ -6182,7 +6182,7 @@ _0804AEBC:  	asrs r0, 16  	lsls r1, 16  	asrs r1, 16 -	bl sub_8046200 +	bl GetHPBarLevel  	ldr r1, [r7]  	adds r1, 0x6F  	adds r1, r6 diff --git a/ld_script.txt b/ld_script.txt index 9238cfc02..462418395 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -60,6 +60,7 @@ SECTIONS {          asm/daycare.o(.text);          asm/egg_hatch.o(.text);          asm/rom_804373C.o(.text); +        asm/smokescreen.o(.text);          asm/pokeball.o(.text);          src/load_save.o(.text);          asm/trade.o(.text); | 
