Finish fldeff_groundshake

This commit is contained in:
KDSKardabox 2018-02-18 17:33:48 +05:30
parent 52b631a092
commit b1cb82fc67
4 changed files with 16 additions and 349 deletions

View File

@ -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.

View File

@ -29,9 +29,8 @@ void sub_81BE9C0(u8 taskId);
void sub_81BEA00(u8 taskId); void sub_81BEA00(u8 taskId);
void sub_81BEA20(void); void sub_81BEA20(void);
extern struct Struct203CF18 *gUnknown_0203CF18; extern struct Struct203CF18 *gUnknown_0203CF18;
extern const u16 gUnknown_08617D64[]; extern const s16 gUnknown_08617D64[][3];
extern const u8 gUnknown_08617E18[]; extern const u8 gUnknown_08617E18[];
#endif // GUARD_FLDEFF_GROUNDSHAKE_H #endif // GUARD_FLDEFF_GROUNDSHAKE_H

View File

@ -259,7 +259,6 @@ SECTIONS {
src/unk_81BAD84.o(.text); src/unk_81BAD84.o(.text);
src/battle_controller_player_partner.o(.text); src/battle_controller_player_partner.o(.text);
src/fldeff_groundshake.o(.text); src/fldeff_groundshake.o(.text);
asm/fldeff_groundshake.o(.text);
asm/fossil_specials.o(.text); asm/fossil_specials.o(.text);
src/berry_fix_program.o(.text); src/berry_fix_program.o(.text);
src/pokemon_summary_screen.o(.text); src/pokemon_summary_screen.o(.text);

View File

@ -7,17 +7,15 @@
#include "field_map_obj.h" #include "field_map_obj.h"
#include "fldeff_groundshake.h" #include "fldeff_groundshake.h"
#include "malloc.h" #include "malloc.h"
#include "menu.h"
#include "party_menu.h"
#include "pokemon.h"
#include "random.h" #include "random.h"
#include "script.h" #include "script.h"
#include "sound.h" #include "sound.h"
#include "sprite.h" #include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "task.h" #include "task.h"
extern const struct SpriteTemplate gUnknown_08617E34;
extern const struct SpriteTemplate gUnknown_08617E60;
bool8 sub_81BE66C(void) bool8 sub_81BE66C(void)
{ {
if (!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A)) if (!(gSaveBlock1Ptr->location.mapGroup == 0x0 && gSaveBlock1Ptr->location.mapNum == 0x1A))
@ -184,36 +182,34 @@ void sub_81BEA00(u8 taskId)
EnableBothScriptContexts(); EnableBothScriptContexts();
} }
extern const struct SpriteTemplate gUnknown_08617E34;
extern const struct SpriteTemplate gUnknown_08617E60;
void sub_81BEA20(void) void sub_81BEA20(void)
{ {
u8 count; u8 count;
u8 spriteId; u8 spriteId;
const s16 *x;
const s16 *y;
for(count = 0; count <=7; count++) for(count = 0; count <=7; count++)
{ {
x = &(gUnknown_08617D64[0]); spriteId = CreateSprite(&gUnknown_08617E60, gUnknown_08617D64[count][0] + 120, gUnknown_08617D64[count][1], 8);
y = &(gUnknown_08617D64[1]);
spriteId = CreateSprite(&gUnknown_08617E60, x[count*3] + 120, y[count*3], 8);
gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].oam.paletteNum = 0;
gSprites[spriteId].data[0] = count; gSprites[spriteId].data[0] = count;
} }
for(count = 0; count <=7; count++) for(count = 0; count <=7; count++)
{ {
spriteId = CreateSprite(&gUnknown_08617E34, gUnknown_08617D64[count][0] + 115, gUnknown_08617D64[count][1] - 3, 8);
x = &(gUnknown_08617D64[0]);
y = &(gUnknown_08617D64[1]);
spriteId = CreateSprite(&gUnknown_08617E34, x[count*3] + 115, y[count*3] - 3, 8);
gSprites[spriteId].oam.priority = 0; gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].oam.paletteNum = 0;
gSprites[spriteId].data[0] = count; 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();
}
}