diff options
-rw-r--r-- | asm/fldeff_groundshake.s | 327 | ||||
-rw-r--r-- | include/fldeff_groundshake.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/fldeff_groundshake.c | 34 |
4 files changed, 16 insertions, 349 deletions
diff --git a/asm/fldeff_groundshake.s b/asm/fldeff_groundshake.s deleted file mode 100644 index a7f6b5664..000000000 --- a/asm/fldeff_groundshake.s +++ /dev/null @@ -1,327 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - -// thumb_func_start sp136_strengh_sound -//sp136_strengh_sound: @ 81BE89C -// push {r4-r6,lr} -// mov r6, r8 -// push {r6} -// mov r8, r0 -// adds r4, r1, 0 -// adds r5, r2, 0 -// adds r6, r3, 0 -// lsls r0, 24 -// lsrs r0, 24 -// mov r8, r0 -// lsls r4, 24 -// lsrs r4, 24 -// lsls r5, 24 -// lsrs r5, 24 -// lsls r6, 24 -// lsrs r6, 24 -// ldr r0, =sub_81BE900 -// movs r1, 0x9 -// bl CreateTask -// lsls r0, 24 -// lsrs r0, 24 -// ldr r2, =gTasks -// lsls r1, r0, 2 -// adds r1, r0 -// lsls r1, 3 -// adds r1, r2 -// movs r0, 0 -// strh r4, [r1, 0x8] -// strh r0, [r1, 0xA] -// strh r5, [r1, 0xC] -// strh r6, [r1, 0xE] -// mov r0, r8 -// strh r0, [r1, 0x10] -// movs r0, 0 -// bl SetCameraPanningCallback -// movs r0, 0xD6 -// bl PlaySE -// pop {r3} -// mov r8, r3 -// pop {r4-r6} -// pop {r0} -// bx r0 -// .pool -// thumb_func_end sp136_strengh_sound - -// thumb_func_start sub_81BE900 -//sub_81BE900: @ 81BE900 -// push {r4,r5,lr} -// lsls r0, 24 -// lsrs r5, r0, 24 -// lsls r0, r5, 2 -// adds r0, r5 -// lsls r0, 3 -// ldr r1, =gTasks + 0x8 -// adds r4, r0, r1 -// ldrh r0, [r4, 0x2] -// adds r0, 0x1 -// strh r0, [r4, 0x2] -// movs r1, 0x2 -// ldrsh r0, [r4, r1] -// movs r2, 0x6 -// ldrsh r1, [r4, r2] -// bl __modsi3 -// cmp r0, 0 -// bne _081BE95C -// strh r0, [r4, 0x2] -// ldrh r0, [r4, 0x4] -// subs r0, 0x1 -// strh r0, [r4, 0x4] -// ldrh r0, [r4] -// negs r0, r0 -// strh r0, [r4] -// ldrh r0, [r4, 0x8] -// negs r0, r0 -// strh r0, [r4, 0x8] -// movs r1, 0 -// ldrsh r0, [r4, r1] -// movs r2, 0x8 -// ldrsh r1, [r4, r2] -// bl SetCameraPanning -// movs r1, 0x4 -// ldrsh r0, [r4, r1] -// cmp r0, 0 -// bne _081BE95C -// bl sub_81BE968 -// adds r0, r5, 0 -// bl DestroyTask -// bl InstallCameraPanAheadCallback -//_081BE95C: -// pop {r4,r5} -// pop {r0} -// bx r0 -// .pool -// thumb_func_end sub_81BE900 - -// thumb_func_start sub_81BE968 -//sub_81BE968: @ 81BE968 -// push {lr} -// ldr r0, =sub_81BE9C0 -// bl FindTaskIdByFunc -// lsls r0, 24 -// lsrs r2, r0, 24 -// cmp r2, 0xFF -// beq _081BE988 -// ldr r0, =gTasks -// lsls r1, r2, 2 -// adds r1, r2 -// lsls r1, 3 -// adds r1, r0 -// ldrh r0, [r1, 0x8] -// adds r0, 0x1 -// strh r0, [r1, 0x8] -//_081BE988: -// pop {r0} -// bx r0 -// .pool -// thumb_func_end sub_81BE968 - -// thumb_func_start sub_81BE994 -//sub_81BE994: @ 81BE994 -// push {lr} -// ldr r0, =gUnknown_08617D94 -// bl LoadSpriteSheets -// bl sub_81BEA20 -// ldr r0, =sub_81BE9C0 -// movs r1, 0x8 -// bl CreateTask -// movs r0, 0x2 -// movs r1, 0x1 -// movs r2, 0x10 -// movs r3, 0x3 -// bl sp136_strengh_sound -// pop {r0} -// bx r0 -// .pool -// thumb_func_end sub_81BE994 - -// thumb_func_start sub_81BE9C0 -//sub_81BE9C0: @ 81BE9C0 -// push {r4,lr} -// lsls r0, 24 -// lsrs r0, 24 -// lsls r1, r0, 2 -// adds r1, r0 -// lsls r3, r1, 3 -// ldr r4, =gTasks + 0x8 -// adds r2, r3, r4 -// ldrh r0, [r2, 0x2] -// adds r0, 0x1 -// strh r0, [r2, 0x2] -// lsls r0, 16 -// movs r1, 0xFA -// lsls r1, 18 -// cmp r0, r1 -// beq _081BE9E6 -// ldrh r0, [r2] -// cmp r0, 0x11 -// bne _081BE9F0 -//_081BE9E6: -// adds r0, r4, 0 -// subs r0, 0x8 -// adds r0, r3, r0 -// ldr r1, =sub_81BEA00 -// str r1, [r0] -//_081BE9F0: -// pop {r4} -// pop {r0} -// bx r0 -// .pool -// thumb_func_end sub_81BE9C0 - -// thumb_func_start sub_81BEA00 -//sub_81BEA00: @ 81BEA00 -// push {r4,lr} -// adds r4, r0, 0 -// lsls r4, 24 -// lsrs r4, 24 -// movs r0, 0xFA -// lsls r0, 4 -// bl FreeSpriteTilesByTag -// adds r0, r4, 0 -// bl DestroyTask -// bl EnableBothScriptContexts -// pop {r4} -// pop {r0} -// bx r0 -// thumb_func_end sub_81BEA00 - -// thumb_func_start sub_81BEA20 -//sub_81BEA20: @ 81BEA20 -// push {r4-r7,lr} -// movs r4, 0 -// ldr r5, =gUnknown_08617D64 -// adds r7, r5, 0x2 -// ldr r6, =gSprites -//_081BEA2A: -// lsls r0, r4, 1 -// adds r0, r4 -// lsls r0, 1 -// adds r1, r0, r5 -// ldrh r1, [r1] -// adds r1, 0x78 -// lsls r1, 16 -// asrs r1, 16 -// adds r0, r7 -// movs r3, 0 -// ldrsh r2, [r0, r3] -// ldr r0, =gUnknown_08617E60 -// movs r3, 0x8 -// bl CreateSprite -// lsls r0, 24 -// lsrs r1, r0, 24 -// lsls r0, r1, 4 -// adds r0, r1 -// lsls r0, 2 -// adds r0, r6 -// ldrb r2, [r0, 0x5] -// movs r3, 0xD -// negs r3, r3 -// adds r1, r3, 0 -// ands r2, r1 -// movs r1, 0xF -// ands r2, r1 -// strb r2, [r0, 0x5] -// strh r4, [r0, 0x2E] -// adds r0, r4, 0x1 -// lsls r0, 24 -// lsrs r4, r0, 24 -// cmp r4, 0x7 -// bls _081BEA2A -// movs r4, 0 -// ldr r5, =gUnknown_08617D64 -// adds r7, r5, 0x2 -// ldr r6, =gSprites -//_081BEA78: -// lsls r0, r4, 1 -// adds r0, r4 -// lsls r0, 1 -// adds r1, r0, r5 -// ldrh r1, [r1] -// adds r1, 0x73 -// lsls r1, 16 -// asrs r1, 16 -// adds r0, r7 -// ldrh r2, [r0] -// subs r2, 0x3 -// lsls r2, 16 -// asrs r2, 16 -// ldr r0, =gUnknown_08617E34 -// movs r3, 0x8 -// bl CreateSprite -// lsls r0, 24 -// lsrs r1, r0, 24 -// lsls r0, r1, 4 -// adds r0, r1 -// lsls r0, 2 -// adds r0, r6 -// ldrb r2, [r0, 0x5] -// movs r3, 0xD -// negs r3, r3 -// adds r1, r3, 0 -// ands r2, r1 -// movs r1, 0xF -// ands r2, r1 -// strb r2, [r0, 0x5] -// strh r4, [r0, 0x2E] -// adds r0, r4, 0x1 -// lsls r0, 24 -// lsrs r4, r0, 24 -// cmp r4, 0x7 -// bls _081BEA78 -// pop {r4-r7} -// pop {r0} -// bx r0 -// .pool -// thumb_func_end sub_81BEA20 - - thumb_func_start sub_81BEAD8 -sub_81BEAD8: @ 81BEAD8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x2 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r4, 0x26] - movs r0, 0x22 - ldrsh r3, [r4, r0] - movs r1, 0x26 - ldrsh r0, [r4, r1] - adds r3, r0 - ldr r2, =gUnknown_08617D64 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - adds r2, 0x4 - adds r0, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r3, r0 - ble _081BEB1A - adds r0, r4, 0 - bl DestroySprite - bl sub_81BE968 -_081BEB1A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BEAD8 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/fldeff_groundshake.h b/include/fldeff_groundshake.h index 3111ec28e..07fdaf9c2 100644 --- a/include/fldeff_groundshake.h +++ b/include/fldeff_groundshake.h @@ -29,9 +29,8 @@ void sub_81BE9C0(u8 taskId); void sub_81BEA00(u8 taskId); void sub_81BEA20(void); - extern struct Struct203CF18 *gUnknown_0203CF18; -extern const u16 gUnknown_08617D64[]; +extern const s16 gUnknown_08617D64[][3]; extern const u8 gUnknown_08617E18[]; #endif // GUARD_FLDEFF_GROUNDSHAKE_H diff --git a/ld_script.txt b/ld_script.txt index 4a9ac752c..979fcf6ea 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -259,7 +259,6 @@ SECTIONS { src/unk_81BAD84.o(.text); src/battle_controller_player_partner.o(.text); src/fldeff_groundshake.o(.text); - asm/fldeff_groundshake.o(.text); asm/fossil_specials.o(.text); src/berry_fix_program.o(.text); src/pokemon_summary_screen.o(.text); diff --git a/src/fldeff_groundshake.c b/src/fldeff_groundshake.c index 04e7f7674..e07b7b2ff 100644 --- a/src/fldeff_groundshake.c +++ b/src/fldeff_groundshake.c @@ -7,17 +7,15 @@ #include "field_map_obj.h" #include "fldeff_groundshake.h" #include "malloc.h" -#include "menu.h" -#include "party_menu.h" -#include "pokemon.h" #include "random.h" #include "script.h" #include "sound.h" #include "sprite.h" -#include "string_util.h" -#include "strings.h" #include "task.h" +extern const struct SpriteTemplate gUnknown_08617E34; +extern const struct SpriteTemplate gUnknown_08617E60; + bool8 sub_81BE66C(void) { if (!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A)) @@ -184,36 +182,34 @@ void sub_81BEA00(u8 taskId) EnableBothScriptContexts(); } -extern const struct SpriteTemplate gUnknown_08617E34; -extern const struct SpriteTemplate gUnknown_08617E60; - void sub_81BEA20(void) { u8 count; u8 spriteId; - const s16 *x; - const s16 *y; for(count = 0; count <=7; count++) { - x = &(gUnknown_08617D64[0]); - y = &(gUnknown_08617D64[1]); - spriteId = CreateSprite(&gUnknown_08617E60, x[count*3] + 120, y[count*3], 8); + spriteId = CreateSprite(&gUnknown_08617E60, gUnknown_08617D64[count][0] + 120, gUnknown_08617D64[count][1], 8); gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].data[0] = count; } - for(count = 0; count <=7; count++) { - - x = &(gUnknown_08617D64[0]); - y = &(gUnknown_08617D64[1]); - - spriteId = CreateSprite(&gUnknown_08617E34, x[count*3] + 115, y[count*3] - 3, 8); + spriteId = CreateSprite(&gUnknown_08617E34, gUnknown_08617D64[count][0] + 115, gUnknown_08617D64[count][1] - 3, 8); gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].data[0] = count; } } +void sub_81BEAD8(struct Sprite* sprite) +{ + sprite->data[1] += 2; + sprite->pos2.y = (sprite->data[1] + (s16)((u32)sprite->data[1] >> 0x1F)) >> 1; + if((sprite->pos1.y) + (sprite->pos2.y) > gUnknown_08617D64[sprite->data[0]][2]) + { + DestroySprite(sprite); + sub_81BE968(); + } +} |