mirror of https://github.com/zeldaret/tmc.git
				
				
				
			structures.h
This commit is contained in:
		
							parent
							
								
									cb24f8f9b1
								
							
						
					
					
						commit
						67da19b92c
					
				| 
						 | 
				
			
			@ -5,157 +5,6 @@
 | 
			
		|||
 | 
			
		||||
	.text
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_08050038
 | 
			
		||||
sub_08050038: @ 0x08050038
 | 
			
		||||
	push {lr}
 | 
			
		||||
	adds r3, r0, #0
 | 
			
		||||
	ldr r2, _0805004C @ =gUnk_03000FD0
 | 
			
		||||
	ldrh r1, [r2, #8]
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	ands r0, r1
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _08050050
 | 
			
		||||
	strh r3, [r2, #0xe]
 | 
			
		||||
	b _08050052
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0805004C: .4byte gUnk_03000FD0
 | 
			
		||||
_08050050:
 | 
			
		||||
	strh r3, [r2, #0xc]
 | 
			
		||||
_08050052:
 | 
			
		||||
	pop {pc}
 | 
			
		||||
 | 
			
		||||
	thumb_func_start DoFade
 | 
			
		||||
DoFade: @ 0x08050054
 | 
			
		||||
	push {r4, r5, lr}
 | 
			
		||||
	adds r5, r0, #0
 | 
			
		||||
	ldr r2, _08050078 @ =gUnk_03000FD0
 | 
			
		||||
	movs r3, #0
 | 
			
		||||
	strh r1, [r2, #0xa]
 | 
			
		||||
	strh r5, [r2, #8]
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	strb r0, [r2]
 | 
			
		||||
	adds r0, #0xff
 | 
			
		||||
	strh r0, [r2, #0xc]
 | 
			
		||||
	strh r3, [r2, #0xe]
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	ands r0, r5
 | 
			
		||||
	adds r4, r2, #0
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _0805007C
 | 
			
		||||
	movs r0, #0xf8
 | 
			
		||||
	b _0805007E
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_08050078: .4byte gUnk_03000FD0
 | 
			
		||||
_0805007C:
 | 
			
		||||
	movs r0, #0
 | 
			
		||||
_0805007E:
 | 
			
		||||
	strb r0, [r4, #2]
 | 
			
		||||
	movs r0, #8
 | 
			
		||||
	ands r0, r5
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _080500A4
 | 
			
		||||
	ldr r1, _080500E4 @ =gUnk_03000000
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	strb r0, [r1, #2]
 | 
			
		||||
	ldr r2, _080500E8 @ =gScreen
 | 
			
		||||
	ldrh r0, [r2, #0x14]
 | 
			
		||||
	movs r1, #0x40
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strh r0, [r2, #0x14]
 | 
			
		||||
	ldrh r0, [r2, #0x20]
 | 
			
		||||
	orrs r0, r1
 | 
			
		||||
	strh r0, [r2, #0x20]
 | 
			
		||||
	ldrh r0, [r2, #0x2c]
 | 
			
		||||
	orrs r1, r0
 | 
			
		||||
	strh r1, [r2, #0x2c]
 | 
			
		||||
_080500A4:
 | 
			
		||||
	movs r0, #0x10
 | 
			
		||||
	ands r0, r5
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	beq _080500E0
 | 
			
		||||
	ldrh r0, [r4, #0x16]
 | 
			
		||||
	ldrh r1, [r4, #0x18]
 | 
			
		||||
	bl sub_0801E1B8
 | 
			
		||||
	movs r1, #0x12
 | 
			
		||||
	ldrsh r0, [r4, r1]
 | 
			
		||||
	movs r2, #0x14
 | 
			
		||||
	ldrsh r1, [r4, r2]
 | 
			
		||||
	movs r3, #0x10
 | 
			
		||||
	ldrsh r2, [r4, r3]
 | 
			
		||||
	bl sub_0801E1EC
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	ands r0, r5
 | 
			
		||||
	cmp r0, #0
 | 
			
		||||
	bne _080500E0
 | 
			
		||||
	ldrh r1, [r4, #8]
 | 
			
		||||
	ldr r0, _080500EC @ =0x0000FFFB
 | 
			
		||||
	ands r0, r1
 | 
			
		||||
	strh r0, [r4, #8]
 | 
			
		||||
	bl sub_08050008
 | 
			
		||||
	ldr r1, _080500F0 @ =gUnk_0200B644
 | 
			
		||||
	movs r0, #1
 | 
			
		||||
	rsbs r0, r0, #0
 | 
			
		||||
	str r0, [r1]
 | 
			
		||||
_080500E0:
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_080500E4: .4byte gUnk_03000000
 | 
			
		||||
_080500E8: .4byte gScreen
 | 
			
		||||
_080500EC: .4byte 0x0000FFFB
 | 
			
		||||
_080500F0: .4byte gUnk_0200B644
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_080500F4
 | 
			
		||||
sub_080500F4: @ 0x080500F4
 | 
			
		||||
	ldr r1, _0805010C @ =gUnk_03000FD0
 | 
			
		||||
	strh r0, [r1, #0xa]
 | 
			
		||||
	ldrh r0, [r1, #8]
 | 
			
		||||
	movs r2, #1
 | 
			
		||||
	eors r0, r2
 | 
			
		||||
	strh r0, [r1, #8]
 | 
			
		||||
	strb r2, [r1]
 | 
			
		||||
	movs r0, #0x80
 | 
			
		||||
	lsls r0, r0, #1
 | 
			
		||||
	strh r0, [r1, #0xc]
 | 
			
		||||
	bx lr
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0805010C: .4byte gUnk_03000FD0
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_08050110
 | 
			
		||||
sub_08050110: @ 0x08050110
 | 
			
		||||
	push {r4, r5, r6, lr}
 | 
			
		||||
	adds r5, r0, #0
 | 
			
		||||
	adds r6, r1, #0
 | 
			
		||||
	adds r4, r2, #0
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	ands r1, r4
 | 
			
		||||
	cmp r1, #0
 | 
			
		||||
	beq _08050130
 | 
			
		||||
	ldr r1, _0805012C @ =gUnk_03000FD0
 | 
			
		||||
	movs r0, #0x96
 | 
			
		||||
	strh r0, [r1, #0x10]
 | 
			
		||||
	adds r2, r1, #0
 | 
			
		||||
	b _08050136
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0805012C: .4byte gUnk_03000FD0
 | 
			
		||||
_08050130:
 | 
			
		||||
	ldr r0, _0805014C @ =gUnk_03000FD0
 | 
			
		||||
	strh r1, [r0, #0x10]
 | 
			
		||||
	adds r2, r0, #0
 | 
			
		||||
_08050136:
 | 
			
		||||
	movs r1, #0
 | 
			
		||||
	strh r5, [r2, #0x12]
 | 
			
		||||
	strh r6, [r2, #0x14]
 | 
			
		||||
	ldr r0, _08050150 @ =0x00003F3F
 | 
			
		||||
	strh r0, [r2, #0x16]
 | 
			
		||||
	strh r1, [r2, #0x18]
 | 
			
		||||
	adds r0, r4, #0
 | 
			
		||||
	adds r1, r3, #0
 | 
			
		||||
	bl DoFade
 | 
			
		||||
	pop {r4, r5, r6, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0805014C: .4byte gUnk_03000FD0
 | 
			
		||||
_08050150: .4byte 0x00003F3F
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_08050154
 | 
			
		||||
sub_08050154: @ 0x08050154
 | 
			
		||||
	push {r4, r5, r6, lr}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,37 +0,0 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	.text
 | 
			
		||||
	
 | 
			
		||||
	thumb_func_start sub_080A3B84
 | 
			
		||||
sub_080A3B84: @ 0x080A3B84
 | 
			
		||||
	push {r4, r5, lr}
 | 
			
		||||
	ldr r4, _080A3BC4 @ =gUnk_030010A0
 | 
			
		||||
	adds r4, #0x2c
 | 
			
		||||
	movs r5, #0
 | 
			
		||||
	movs r0, #2
 | 
			
		||||
	strb r0, [r4]
 | 
			
		||||
	bl sub_080AD90C
 | 
			
		||||
	ldr r1, _080A3BC8 @ =gUnk_081280C4
 | 
			
		||||
	ldr r0, _080A3BCC @ =gMenu
 | 
			
		||||
	ldrb r0, [r0, #5]
 | 
			
		||||
	lsls r0, r0, #2
 | 
			
		||||
	adds r0, r0, r1
 | 
			
		||||
	ldr r0, [r0]
 | 
			
		||||
	bl _call_via_r0
 | 
			
		||||
	bl sub_080A3B74
 | 
			
		||||
	bl sub_080A4054
 | 
			
		||||
	bl sub_0801C1D4
 | 
			
		||||
	bl sub_0801C208
 | 
			
		||||
	bl sub_0805E5C0
 | 
			
		||||
	bl sub_080AD9B0
 | 
			
		||||
	bl sub_080AD918
 | 
			
		||||
	strb r5, [r4]
 | 
			
		||||
	pop {r4, r5, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_080A3BC4: .4byte gUnk_030010A0
 | 
			
		||||
_080A3BC8: .4byte gUnk_081280C4
 | 
			
		||||
_080A3BCC: .4byte gMenu
 | 
			
		||||
| 
						 | 
				
			
			@ -1,69 +0,0 @@
 | 
			
		|||
	.include "asm/macros.inc"
 | 
			
		||||
 | 
			
		||||
	.include "constants/constants.inc"
 | 
			
		||||
 | 
			
		||||
	.syntax unified
 | 
			
		||||
 | 
			
		||||
	.text
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	thumb_func_start PalaceArchway
 | 
			
		||||
PalaceArchway: @ 0x0809F288
 | 
			
		||||
	push {lr}
 | 
			
		||||
	ldr r2, _0809F29C @ =gUnk_081246EC
 | 
			
		||||
	ldrb r1, [r0, #0xc]
 | 
			
		||||
	lsls r1, r1, #2
 | 
			
		||||
	adds r1, r1, r2
 | 
			
		||||
	ldr r1, [r1]
 | 
			
		||||
	bl _call_via_r1
 | 
			
		||||
	pop {pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0809F29C: .4byte gUnk_081246EC
 | 
			
		||||
 | 
			
		||||
	thumb_func_start sub_0809F2A0
 | 
			
		||||
sub_0809F2A0: @ 0x0809F2A0
 | 
			
		||||
	push {r4, r5, r6, lr}
 | 
			
		||||
	movs r1, #1
 | 
			
		||||
	strb r1, [r0, #0xc]
 | 
			
		||||
	ldrb r1, [r0, #0xb]
 | 
			
		||||
	strb r1, [r0, #0x1e]
 | 
			
		||||
	ldrb r1, [r0, #0x19]
 | 
			
		||||
	movs r2, #0xc0
 | 
			
		||||
	orrs r1, r2
 | 
			
		||||
	strb r1, [r0, #0x19]
 | 
			
		||||
	adds r3, r0, #0
 | 
			
		||||
	adds r3, #0x29
 | 
			
		||||
	ldrb r1, [r3]
 | 
			
		||||
	movs r2, #7
 | 
			
		||||
	orrs r1, r2
 | 
			
		||||
	strb r1, [r3]
 | 
			
		||||
	ldr r5, _0809F2EC @ =0x00004069
 | 
			
		||||
	movs r2, #0x2e
 | 
			
		||||
	ldrsh r1, [r0, r2]
 | 
			
		||||
	ldr r3, _0809F2F0 @ =gRoomControls
 | 
			
		||||
	ldrh r2, [r3, #6]
 | 
			
		||||
	subs r1, r1, r2
 | 
			
		||||
	asrs r1, r1, #4
 | 
			
		||||
	movs r4, #0x3f
 | 
			
		||||
	ands r1, r4
 | 
			
		||||
	movs r6, #0x32
 | 
			
		||||
	ldrsh r2, [r0, r6]
 | 
			
		||||
	ldrh r3, [r3, #8]
 | 
			
		||||
	subs r2, r2, r3
 | 
			
		||||
	asrs r2, r2, #4
 | 
			
		||||
	ands r2, r4
 | 
			
		||||
	lsls r2, r2, #6
 | 
			
		||||
	orrs r1, r2
 | 
			
		||||
	adds r0, #0x38
 | 
			
		||||
	ldrb r2, [r0]
 | 
			
		||||
	adds r0, r5, #0
 | 
			
		||||
	bl SetTile
 | 
			
		||||
	pop {r4, r5, r6, pc}
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
_0809F2EC: .4byte 0x00004069
 | 
			
		||||
_0809F2F0: .4byte gRoomControls
 | 
			
		||||
 | 
			
		||||
	thumb_func_start nullsub_537
 | 
			
		||||
nullsub_537: @ 0x0809F2F4
 | 
			
		||||
	bx lr
 | 
			
		||||
	.align 2, 0
 | 
			
		||||
| 
						 | 
				
			
			@ -169,4 +169,11 @@ extern void sub_080AD76C();
 | 
			
		|||
extern void sub_080AD644();
 | 
			
		||||
extern void sub_080ADA14(u32, u32);
 | 
			
		||||
extern void sub_080AD89C();
 | 
			
		||||
extern void sub_0801E1B8(u32, u32);
 | 
			
		||||
extern void sub_0801E1EC(s32, s32, s32);
 | 
			
		||||
extern void sub_08050008(void);
 | 
			
		||||
extern void sub_080A3B74(void);
 | 
			
		||||
extern void sub_080A4054(void);
 | 
			
		||||
extern void sub_0801C1D4(void);
 | 
			
		||||
extern void sub_0801C208(void);
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
#ifndef STRUCTURES_H
 | 
			
		||||
#define STRUCTURES_H
 | 
			
		||||
 | 
			
		||||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "link.h"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 filler[8];
 | 
			
		||||
    u8 field_0x8;
 | 
			
		||||
    u8 field_0x9[0x34];
 | 
			
		||||
    u32 windcrests;
 | 
			
		||||
    u8 field_0x44[0x64];
 | 
			
		||||
    Stats stats;
 | 
			
		||||
} struct_02002A40;
 | 
			
		||||
 | 
			
		||||
extern struct_02002A40 gUnk_02002A40;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 field_0x0[8];
 | 
			
		||||
    u8 field_0x8;
 | 
			
		||||
    u8 field_0x9;
 | 
			
		||||
    u8 field_0xa[6];
 | 
			
		||||
    union SplitWord field_0x10;
 | 
			
		||||
    u8 field_0x14[0xc];
 | 
			
		||||
    u16 field_0x20;
 | 
			
		||||
    u16 field_0x22;
 | 
			
		||||
    u8 field_0x24[0x14];
 | 
			
		||||
    u8 field_0x38;
 | 
			
		||||
    u8 field_0x39;
 | 
			
		||||
    u16 field_0x3a;
 | 
			
		||||
    u8 field_0x3c;
 | 
			
		||||
    u8 filler[6];
 | 
			
		||||
    u16 field_0x44;
 | 
			
		||||
    u16 field_0x46;
 | 
			
		||||
    u16 field_0x48;
 | 
			
		||||
    u16 field_0x4a;
 | 
			
		||||
} struct_030010A0;
 | 
			
		||||
 | 
			
		||||
extern struct_030010A0 gUnk_030010A0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -832,7 +832,7 @@ SECTIONS {
 | 
			
		|||
		src/object/fan.o(.text);
 | 
			
		||||
		asm/fan.o(.text);
 | 
			
		||||
		asm/objectA0.o(.text);
 | 
			
		||||
		asm/palaceArchway.o(.text);
 | 
			
		||||
		src/object/palaceArchway.o(.text);
 | 
			
		||||
		asm/objectA2.o(.text);
 | 
			
		||||
		src/object/cloud.o(.text);
 | 
			
		||||
		asm/minishLight.o(.text);
 | 
			
		||||
| 
						 | 
				
			
			@ -878,7 +878,7 @@ SECTIONS {
 | 
			
		|||
		asm/code_080A29BC.o(.text);
 | 
			
		||||
		asm/playSFX.o(.text);
 | 
			
		||||
		asm/code_080A3480.o(.text);
 | 
			
		||||
		asm/drawKinstoneMenu.o(.text);
 | 
			
		||||
		src/sub_080A3B84.o(.text);
 | 
			
		||||
		asm/code_080A3BD0.o(.text);
 | 
			
		||||
		src/sub_080A554C.o(.text);
 | 
			
		||||
		asm/code_080A5574.o(.text);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "entity.h"
 | 
			
		||||
#include "room.h"
 | 
			
		||||
#include "functions.h"
 | 
			
		||||
 | 
			
		||||
extern void (*const gUnk_081246EC[])(Entity*);
 | 
			
		||||
 | 
			
		||||
void PalaceArchway(Entity* this) {
 | 
			
		||||
    gUnk_081246EC[this->action](this);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_0809F2A0(Entity *this)
 | 
			
		||||
{
 | 
			
		||||
  this->action = 1;
 | 
			
		||||
  this->frameIndex = this->entityType.parameter;
 | 
			
		||||
  this->spriteRendering.b3 = 3;
 | 
			
		||||
  this->spritePriority.b0 = 7;
 | 
			
		||||
  SetTile(0x4069, COORD_TO_TILE(this), this->collisionLayer);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void nullsub_537() {}
 | 
			
		||||
							
								
								
									
										34
									
								
								src/room.c
								
								
								
								
							
							
						
						
									
										34
									
								
								src/room.c
								
								
								
								
							| 
						 | 
				
			
			@ -7,39 +7,7 @@
 | 
			
		|||
#include "link.h"
 | 
			
		||||
#include "screen.h"
 | 
			
		||||
#include "main.h"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 field_0x0[8];
 | 
			
		||||
    u8 field_0x8;
 | 
			
		||||
    u8 field_0x9;
 | 
			
		||||
    u8 field_0xa[6];
 | 
			
		||||
    union SplitWord field_0x10;
 | 
			
		||||
    u8 field_0x14[0xc];
 | 
			
		||||
    u16 field_0x20;
 | 
			
		||||
    u16 field_0x22;
 | 
			
		||||
    u8 field_0x24[0x14];
 | 
			
		||||
    u8 field_0x38;
 | 
			
		||||
    u8 field_0x39;
 | 
			
		||||
    u16 field_0x3a;
 | 
			
		||||
    u8 field_0x3c;
 | 
			
		||||
    u8 filler[6];
 | 
			
		||||
    u16 field_0x44;
 | 
			
		||||
    u16 field_0x46;
 | 
			
		||||
    u16 field_0x48;
 | 
			
		||||
    u16 field_0x4a;
 | 
			
		||||
} struct_030010A0;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 filler[8];
 | 
			
		||||
    u8 field_0x8;
 | 
			
		||||
    u8 field_0x9[0x34];
 | 
			
		||||
    u32 windcrests;
 | 
			
		||||
    u8 field_0x44[0x64];
 | 
			
		||||
    Stats stats;
 | 
			
		||||
} struct_02002A40;
 | 
			
		||||
 | 
			
		||||
extern struct_030010A0 gUnk_030010A0;
 | 
			
		||||
extern struct_02002A40 gUnk_02002A40;
 | 
			
		||||
#include "structures.h"
 | 
			
		||||
 | 
			
		||||
void sub_0804B3C4(u32 arg0) {
 | 
			
		||||
    sub_0804B29C(arg0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,35 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "functions.h"
 | 
			
		||||
#include "screen.h"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 field_0x0;
 | 
			
		||||
    u8 field_0x1;
 | 
			
		||||
    u8 field_0x2;
 | 
			
		||||
    u8 field_0x3;
 | 
			
		||||
    u32 field_0x4;
 | 
			
		||||
    u16 fadeType; // fade in or out, are there others?
 | 
			
		||||
    u16 fadeSpeed; // subtracted from duration
 | 
			
		||||
    u16 fadeDuration;
 | 
			
		||||
    u16 field_0xe;
 | 
			
		||||
    s16 field_0x10;
 | 
			
		||||
    s16 field_0x12;
 | 
			
		||||
    s16 field_0x14;
 | 
			
		||||
    u16 field_0x16;
 | 
			
		||||
    u16 field_0x18;
 | 
			
		||||
} struct_03000FD0;
 | 
			
		||||
 | 
			
		||||
extern struct_03000FD0 gUnk_03000FD0;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
    u8 field_0x0;
 | 
			
		||||
    u8 field_0x1;
 | 
			
		||||
    u8 spritesOffset;
 | 
			
		||||
} struct_03000000;
 | 
			
		||||
 | 
			
		||||
extern struct_03000000 gUnk_03000000;
 | 
			
		||||
 | 
			
		||||
extern u32 gUnk_0200B644;
 | 
			
		||||
 | 
			
		||||
extern void sub_0801E104();
 | 
			
		||||
extern void DoFade(u32, u32);
 | 
			
		||||
| 
						 | 
				
			
			@ -9,14 +40,65 @@ void sub_08050024() {
 | 
			
		|||
    return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* 	thumb_func_start sub_08050024
 | 
			
		||||
sub_08050024: @ 0x08050024
 | 
			
		||||
        push {lr}
 | 
			
		||||
        bl sub_0801E104
 | 
			
		||||
        movs r1, #0x80
 | 
			
		||||
        lsls r1, r1, #1
 | 
			
		||||
        movs r0, #5
 | 
			
		||||
        bl DoFade
 | 
			
		||||
        pop {pc}
 | 
			
		||||
        .align 2, 0
 | 
			
		||||
         */
 | 
			
		||||
void sub_08050038(u32 arg0)
 | 
			
		||||
{
 | 
			
		||||
  if ((gUnk_03000FD0.fadeType & 1) != 0) {
 | 
			
		||||
    gUnk_03000FD0.field_0xe = arg0;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
      gUnk_03000FD0.fadeDuration = arg0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void DoFade(u32 fadeType, u32 fadeSpeed)
 | 
			
		||||
{
 | 
			
		||||
  gUnk_03000FD0.fadeSpeed = fadeSpeed;
 | 
			
		||||
  gUnk_03000FD0.fadeType = fadeType;
 | 
			
		||||
  gUnk_03000FD0.field_0x0 = 1;
 | 
			
		||||
  gUnk_03000FD0.fadeDuration = 0x100;
 | 
			
		||||
  gUnk_03000FD0.field_0xe = 0;
 | 
			
		||||
  if ((gUnk_03000FD0.fadeType & 2) != 0) {
 | 
			
		||||
    gUnk_03000FD0.field_0x2 = 0xf8;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    gUnk_03000FD0.field_0x2 = 0;
 | 
			
		||||
  }
 | 
			
		||||
  if ((fadeType & 8) != 0) {
 | 
			
		||||
    gUnk_03000000.spritesOffset = 1;
 | 
			
		||||
    gScreen.bg1.unk |= 0x40;
 | 
			
		||||
    gScreen.bg2.unk |= 0x40;
 | 
			
		||||
    gScreen.affine.unk2 |= 0x40;
 | 
			
		||||
  }
 | 
			
		||||
  if ((fadeType & 0x10) != 0) {
 | 
			
		||||
    sub_0801E1B8(gUnk_03000FD0.field_0x16, gUnk_03000FD0.field_0x18);
 | 
			
		||||
    sub_0801E1EC(gUnk_03000FD0.field_0x12, gUnk_03000FD0.field_0x14, gUnk_03000FD0.field_0x10);
 | 
			
		||||
    if ((fadeType & 1) == 0) {
 | 
			
		||||
      gUnk_03000FD0.fadeType &= 0xfffb;
 | 
			
		||||
      sub_08050008();
 | 
			
		||||
      gUnk_0200B644 = 0xffffffff;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_080500F4(u32 arg0)
 | 
			
		||||
{
 | 
			
		||||
    gUnk_03000FD0.fadeSpeed = arg0;
 | 
			
		||||
    gUnk_03000FD0.fadeType ^= 1;
 | 
			
		||||
    gUnk_03000FD0.field_0x0 = 1;
 | 
			
		||||
    gUnk_03000FD0.fadeDuration = 0x100;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void sub_08050110(u32 param_1, u32 param_2, u32 fadeType, u32 fadeSpeed)
 | 
			
		||||
{
 | 
			
		||||
  if ((fadeType & 1) != 0) {
 | 
			
		||||
    gUnk_03000FD0.field_0x10 = 0x96;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    gUnk_03000FD0.field_0x10 = 0;
 | 
			
		||||
  }
 | 
			
		||||
  gUnk_03000FD0.field_0x12 = param_1;
 | 
			
		||||
  gUnk_03000FD0.field_0x14 = param_2;
 | 
			
		||||
  gUnk_03000FD0.field_0x16 = 0x3f3f;
 | 
			
		||||
  gUnk_03000FD0.field_0x18 = 0;
 | 
			
		||||
  DoFade(fadeType, fadeSpeed);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
#include "global.h"
 | 
			
		||||
#include "functions.h"
 | 
			
		||||
#include "menu.h"
 | 
			
		||||
#include "structures.h"
 | 
			
		||||
 | 
			
		||||
extern void (*const gUnk_081280C4[])();
 | 
			
		||||
 | 
			
		||||
void DrawKinstoneMenu(void)
 | 
			
		||||
{
 | 
			
		||||
  gUnk_030010A0.field_0x24[8] = 2;
 | 
			
		||||
  sub_080AD90C();
 | 
			
		||||
  gUnk_081280C4[gMenu.menuType]();
 | 
			
		||||
  sub_080A3B74();
 | 
			
		||||
  sub_080A4054();
 | 
			
		||||
  sub_0801C1D4();
 | 
			
		||||
  sub_0801C208();
 | 
			
		||||
  sub_0805E5C0();
 | 
			
		||||
  sub_080AD9B0();
 | 
			
		||||
  sub_080AD918();
 | 
			
		||||
  gUnk_030010A0.field_0x24[8] = 0;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue