decompile window_8bpp
This commit is contained in:
@@ -1,447 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start nullsub_7
|
||||
nullsub_7: @ 8005034
|
||||
bx lr
|
||||
thumb_func_end nullsub_7
|
||||
|
||||
thumb_func_start AddWindow8Bit
|
||||
AddWindow8Bit: @ 8005038
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
mov r9, r0
|
||||
movs r6, 0
|
||||
ldr r1, _08005100 @ =gWindows
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0xFF
|
||||
beq _08005066
|
||||
_0800504E:
|
||||
adds r0, r6, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r6, r0, 16
|
||||
cmp r6, 0x1F
|
||||
bhi _08005066
|
||||
lsls r0, r6, 1
|
||||
adds r0, r6
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0xFF
|
||||
bne _0800504E
|
||||
_08005066:
|
||||
cmp r6, 0x20
|
||||
beq _080050FA
|
||||
mov r0, r9
|
||||
ldrb r7, [r0]
|
||||
ldr r1, _08005104 @ =gWindowBgTilemapBuffers
|
||||
mov r10, r1
|
||||
lsls r2, r7, 2
|
||||
mov r8, r2
|
||||
mov r0, r8
|
||||
add r0, r10
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _080050C2
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x8
|
||||
bl GetBgAttribute
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
ldr r0, _08005108 @ =0x0000ffff
|
||||
cmp r5, r0
|
||||
beq _080050C2
|
||||
adds r0, r5, 0
|
||||
bl Alloc
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
beq _080050FA
|
||||
movs r1, 0
|
||||
mov r12, r10
|
||||
mov r3, r8
|
||||
cmp r1, r5
|
||||
bge _080050B4
|
||||
movs r2, 0
|
||||
_080050AA:
|
||||
adds r0, r4, r1
|
||||
strb r2, [r0]
|
||||
adds r1, 0x1
|
||||
cmp r1, r5
|
||||
blt _080050AA
|
||||
_080050B4:
|
||||
mov r1, r12
|
||||
adds r0, r3, r1
|
||||
str r4, [r0]
|
||||
adds r0, r7, 0
|
||||
adds r1, r4, 0
|
||||
bl SetBgTilemapBuffer
|
||||
_080050C2:
|
||||
mov r2, r9
|
||||
ldrb r1, [r2, 0x3]
|
||||
ldrb r0, [r2, 0x4]
|
||||
muls r0, r1
|
||||
lsls r0, 22
|
||||
lsrs r0, 16
|
||||
bl Alloc
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
bne _08005110
|
||||
adds r0, r7, 0
|
||||
bl GetNumActiveWindowsOnBg8Bit
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080050FA
|
||||
ldr r0, _08005104 @ =gWindowBgTilemapBuffers
|
||||
lsls r1, r7, 2
|
||||
adds r5, r1, r0
|
||||
ldr r1, [r5]
|
||||
ldr r0, _0800510C @ =nullsub_7
|
||||
cmp r1, r0
|
||||
beq _080050FA
|
||||
adds r0, r1, 0
|
||||
bl Free
|
||||
str r4, [r5]
|
||||
_080050FA:
|
||||
movs r0, 0xFF
|
||||
b _0800512E
|
||||
.align 2, 0
|
||||
_08005100: .4byte gWindows
|
||||
_08005104: .4byte gWindowBgTilemapBuffers
|
||||
_08005108: .4byte 0x0000ffff
|
||||
_0800510C: .4byte nullsub_7
|
||||
_08005110:
|
||||
ldr r1, _0800513C @ =gWindows
|
||||
lsls r2, r6, 1
|
||||
adds r2, r6
|
||||
lsls r2, 2
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
adds r0, r2, r0
|
||||
str r4, [r0]
|
||||
adds r2, r1
|
||||
mov r3, r9
|
||||
ldr r0, [r3]
|
||||
ldr r1, [r3, 0x4]
|
||||
str r0, [r2]
|
||||
str r1, [r2, 0x4]
|
||||
adds r0, r6, 0
|
||||
_0800512E:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0800513C: .4byte gWindows
|
||||
thumb_func_end AddWindow8Bit
|
||||
|
||||
thumb_func_start FillWindowPixelBuffer8Bit
|
||||
FillWindowPixelBuffer8Bit: @ 8005140
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
ldr r6, _0800517C @ =gWindows
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r4, r1, 2
|
||||
adds r0, r4, r6
|
||||
ldrb r1, [r0, 0x3]
|
||||
ldrb r0, [r0, 0x4]
|
||||
muls r0, r1
|
||||
lsls r0, 22
|
||||
lsrs r3, r0, 16
|
||||
movs r2, 0
|
||||
cmp r2, r3
|
||||
bge _08005176
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x8
|
||||
adds r1, r4, r0
|
||||
_0800516A:
|
||||
ldr r0, [r1]
|
||||
adds r0, r2
|
||||
strb r5, [r0]
|
||||
adds r2, 0x1
|
||||
cmp r2, r3
|
||||
blt _0800516A
|
||||
_08005176:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800517C: .4byte gWindows
|
||||
thumb_func_end FillWindowPixelBuffer8Bit
|
||||
|
||||
thumb_func_start FillWindowPixelRect8Bit
|
||||
FillWindowPixelRect8Bit: @ 8005180
|
||||
push {r4-r6,lr}
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5,r6}
|
||||
sub sp, 0x10
|
||||
mov r9, r3
|
||||
ldr r3, [sp, 0x28]
|
||||
ldr r4, [sp, 0x2C]
|
||||
mov r8, r4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
mov r4, r9
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
mov r9, r4
|
||||
lsls r3, 16
|
||||
lsrs r3, 16
|
||||
mov r4, r8
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
mov r8, r4
|
||||
ldr r5, _08005200 @ =gWindows
|
||||
lsls r4, r0, 1
|
||||
adds r4, r0
|
||||
lsls r4, 2
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x8
|
||||
adds r0, r4, r0
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x8]
|
||||
adds r4, r5
|
||||
ldrb r0, [r4, 0x3]
|
||||
lsls r0, 3
|
||||
ldr r6, _08005204 @ =0xffff0000
|
||||
ldr r5, [sp, 0xC]
|
||||
ands r5, r6
|
||||
orrs r5, r0
|
||||
str r5, [sp, 0xC]
|
||||
ldrb r4, [r4, 0x4]
|
||||
lsls r4, 19
|
||||
ldr r0, _08005208 @ =0x0000ffff
|
||||
ands r0, r5
|
||||
orrs r0, r4
|
||||
str r0, [sp, 0xC]
|
||||
mov r0, r8
|
||||
str r0, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
add r0, sp, 0x8
|
||||
adds r1, r2, 0
|
||||
mov r2, r9
|
||||
bl FillBitmapRect8Bit
|
||||
add sp, 0x10
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08005200: .4byte gWindows
|
||||
_08005204: .4byte 0xffff0000
|
||||
_08005208: .4byte 0x0000ffff
|
||||
thumb_func_end FillWindowPixelRect8Bit
|
||||
|
||||
thumb_func_start BlitBitmapRectToWindow4BitTo8Bit
|
||||
BlitBitmapRectToWindow4BitTo8Bit: @ 800520C
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x2C
|
||||
ldr r4, [sp, 0x4C]
|
||||
ldr r5, [sp, 0x50]
|
||||
ldr r6, [sp, 0x54]
|
||||
mov r8, r6
|
||||
ldr r7, [sp, 0x58]
|
||||
mov r9, r7
|
||||
ldr r6, [sp, 0x5C]
|
||||
mov r10, r6
|
||||
ldr r7, [sp, 0x60]
|
||||
mov r12, r7
|
||||
ldr r6, [sp, 0x64]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
lsls r3, 16
|
||||
lsrs r3, 16
|
||||
lsls r4, 16
|
||||
mov r7, r8
|
||||
lsls r7, 16
|
||||
lsrs r7, 16
|
||||
mov r8, r7
|
||||
mov r7, r9
|
||||
lsls r7, 16
|
||||
lsrs r7, 16
|
||||
mov r9, r7
|
||||
mov r7, r10
|
||||
lsls r7, 16
|
||||
lsrs r7, 16
|
||||
mov r10, r7
|
||||
mov r7, r12
|
||||
lsls r7, 16
|
||||
lsrs r7, 16
|
||||
mov r12, r7
|
||||
lsls r6, 24
|
||||
lsrs r6, 24
|
||||
str r6, [sp, 0x28]
|
||||
str r1, [sp, 0x18]
|
||||
lsls r5, 16
|
||||
ldr r6, _080052CC @ =0x0000ffff
|
||||
lsrs r4, 16
|
||||
orrs r4, r5
|
||||
str r4, [sp, 0x1C]
|
||||
ldr r1, _080052D0 @ =gWindows
|
||||
lsls r5, r0, 1
|
||||
adds r5, r0
|
||||
lsls r5, 2
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
adds r0, r5, r0
|
||||
ldr r0, [r0]
|
||||
str r0, [sp, 0x20]
|
||||
adds r5, r1
|
||||
ldrb r0, [r5, 0x3]
|
||||
lsls r0, 3
|
||||
add r1, sp, 0x20
|
||||
ldr r4, [r1, 0x4]
|
||||
ldr r7, _080052D4 @ =0xffff0000
|
||||
ands r4, r7
|
||||
orrs r4, r0
|
||||
str r4, [r1, 0x4]
|
||||
ldrb r0, [r5, 0x4]
|
||||
lsls r0, 19
|
||||
ands r6, r4
|
||||
orrs r6, r0
|
||||
str r6, [r1, 0x4]
|
||||
mov r0, r8
|
||||
str r0, [sp]
|
||||
mov r6, r9
|
||||
str r6, [sp, 0x4]
|
||||
mov r7, r10
|
||||
str r7, [sp, 0x8]
|
||||
mov r0, r12
|
||||
str r0, [sp, 0xC]
|
||||
movs r0, 0
|
||||
str r0, [sp, 0x10]
|
||||
ldr r6, [sp, 0x28]
|
||||
str r6, [sp, 0x14]
|
||||
add r0, sp, 0x18
|
||||
bl BlitBitmapRect4BitTo8Bit
|
||||
add sp, 0x2C
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080052CC: .4byte 0x0000ffff
|
||||
_080052D0: .4byte gWindows
|
||||
_080052D4: .4byte 0xffff0000
|
||||
thumb_func_end BlitBitmapRectToWindow4BitTo8Bit
|
||||
|
||||
thumb_func_start CopyWindowToVram8Bit
|
||||
CopyWindowToVram8Bit: @ 80052D8
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r2, r1, 24
|
||||
adds r5, r2, 0
|
||||
ldr r6, _0800530C @ =gUnknown_2020634
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r0, _08005310 @ =gWindows
|
||||
adds r3, r1, r0
|
||||
str r3, [r6]
|
||||
ldr r4, _08005314 @ =gUnknown_2020638
|
||||
ldrb r1, [r3, 0x3]
|
||||
ldrb r0, [r3, 0x4]
|
||||
muls r0, r1
|
||||
lsls r0, 6
|
||||
strh r0, [r4]
|
||||
cmp r2, 0x2
|
||||
beq _08005326
|
||||
cmp r2, 0x2
|
||||
bgt _08005318
|
||||
cmp r2, 0x1
|
||||
beq _0800531E
|
||||
b _08005348
|
||||
.align 2, 0
|
||||
_0800530C: .4byte gUnknown_2020634
|
||||
_08005310: .4byte gWindows
|
||||
_08005314: .4byte gUnknown_2020638
|
||||
_08005318:
|
||||
cmp r5, 0x3
|
||||
beq _08005334
|
||||
b _08005348
|
||||
_0800531E:
|
||||
ldrb r0, [r3]
|
||||
bl CopyBgTilemapBufferToVram
|
||||
b _08005348
|
||||
_08005326:
|
||||
ldrb r0, [r3]
|
||||
ldr r1, [r3, 0x8]
|
||||
ldrh r2, [r4]
|
||||
ldrh r3, [r3, 0x6]
|
||||
bl LoadBgTiles
|
||||
b _08005348
|
||||
_08005334:
|
||||
ldrb r0, [r3]
|
||||
ldr r1, [r3, 0x8]
|
||||
ldrh r2, [r4]
|
||||
ldrh r3, [r3, 0x6]
|
||||
bl LoadBgTiles
|
||||
ldr r0, [r6]
|
||||
ldrb r0, [r0]
|
||||
bl CopyBgTilemapBufferToVram
|
||||
_08005348:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end CopyWindowToVram8Bit
|
||||
|
||||
thumb_func_start GetNumActiveWindowsOnBg8Bit
|
||||
GetNumActiveWindowsOnBg8Bit: @ 8005350
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
movs r3, 0
|
||||
ldr r2, _08005378 @ =gWindows
|
||||
movs r1, 0x1F
|
||||
_0800535C:
|
||||
ldrb r0, [r2]
|
||||
cmp r0, r4
|
||||
bne _08005368
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
_08005368:
|
||||
adds r2, 0xC
|
||||
subs r1, 0x1
|
||||
cmp r1, 0
|
||||
bge _0800535C
|
||||
adds r0, r3, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08005378: .4byte gWindows
|
||||
thumb_func_end GetNumActiveWindowsOnBg8Bit
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -24,6 +24,8 @@ struct WindowTemplate
|
||||
u16 baseBlock;
|
||||
};
|
||||
|
||||
#define WINDOWS_MAX 32
|
||||
|
||||
#define DUMMY_WIN_TEMPLATE \
|
||||
{ \
|
||||
0xFF, \
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@ SECTIONS {
|
||||
asm/text_printer.o(.text);
|
||||
src/window.o(.text);
|
||||
asm/blit.o(.text);
|
||||
asm/window_8bpp.o(.text);
|
||||
src/window_8bpp.o(.text);
|
||||
asm/text.o(.text);
|
||||
asm/sprite.o(.text);
|
||||
asm/string_util.o(.text);
|
||||
|
||||
@@ -7,8 +7,6 @@ extern u8 gWindowClearTile;
|
||||
extern void* gWindowBgTilemapBuffers[];
|
||||
extern u32 gWindowTileAutoAllocEnabled;
|
||||
|
||||
#define WINDOWS_MAX 32
|
||||
|
||||
EWRAM_DATA struct Window gWindows[WINDOWS_MAX] = {0};
|
||||
|
||||
extern void BlitBitmapRect4Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey);
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
#include "global.h"
|
||||
#include "window.h"
|
||||
#include "malloc.h"
|
||||
#include "bg.h"
|
||||
|
||||
extern void* gWindowBgTilemapBuffers[];
|
||||
|
||||
EWRAM_DATA static struct Window* sWindowPtr = NULL;
|
||||
EWRAM_DATA static u16 sWindowSize = 0;
|
||||
|
||||
extern void BlitBitmapRect4BitTo8Bit(struct Bitmap *src, struct Bitmap *dest, u16 srcX, u16 srcY, u16 destX, u16 destY, u16 width, u16 height, u8 colorKey, u8 paletteNum);
|
||||
extern void FillBitmapRect8Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue);
|
||||
|
||||
static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId);
|
||||
|
||||
static void nullsub_9(void)
|
||||
{
|
||||
}
|
||||
|
||||
u16 AddWindow8Bit(struct WindowTemplate *template)
|
||||
{
|
||||
u16 windowId;
|
||||
u8* memAddress;
|
||||
u8 bgLayer;
|
||||
|
||||
for (windowId = 0; windowId < 32; windowId++)
|
||||
{
|
||||
if (gWindows[windowId].window.priority == 0xFF)
|
||||
break;
|
||||
}
|
||||
if (windowId == WINDOWS_MAX)
|
||||
return 0xFF;
|
||||
bgLayer = template->priority;
|
||||
if (gWindowBgTilemapBuffers[bgLayer] == 0)
|
||||
{
|
||||
u16 attribute = GetBgAttribute(bgLayer, 8);
|
||||
if (attribute != 0xFFFF)
|
||||
{
|
||||
s32 i;
|
||||
memAddress = Alloc(attribute);
|
||||
if (memAddress == NULL)
|
||||
return 0xFF;
|
||||
for (i = 0; i < attribute; i++) // if we're going to zero out the memory anyway, why not call AllocZeroed?
|
||||
memAddress[i] = 0;
|
||||
gWindowBgTilemapBuffers[bgLayer] = memAddress;
|
||||
SetBgTilemapBuffer(bgLayer, memAddress);
|
||||
}
|
||||
}
|
||||
memAddress = Alloc((u16)(0x40 * (template->width * template->height)));
|
||||
if (memAddress == NULL)
|
||||
{
|
||||
if (GetNumActiveWindowsOnBg8Bit(bgLayer) == 0 && gWindowBgTilemapBuffers[bgLayer] != nullsub_9)
|
||||
{
|
||||
Free(gWindowBgTilemapBuffers[bgLayer]);
|
||||
gWindowBgTilemapBuffers[bgLayer] = NULL;
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
gWindows[windowId].tileData = memAddress;
|
||||
gWindows[windowId].window = *template;
|
||||
return windowId;
|
||||
}
|
||||
}
|
||||
|
||||
void FillWindowPixelBuffer8Bit(u8 windowId, u8 fillValue)
|
||||
{
|
||||
s32 i;
|
||||
s32 size;
|
||||
|
||||
size = (u16)(0x40 * (gWindows[windowId].window.width * gWindows[windowId].window.height));
|
||||
for (i = 0; i < size; i++)
|
||||
gWindows[windowId].tileData[i] = fillValue;
|
||||
}
|
||||
|
||||
void FillWindowPixelRect8Bit(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height)
|
||||
{
|
||||
struct Bitmap pixelRect;
|
||||
|
||||
pixelRect.pixels = gWindows[windowId].tileData;
|
||||
pixelRect.width = 8 * gWindows[windowId].window.width;
|
||||
pixelRect.height = 8 * gWindows[windowId].window.height;
|
||||
|
||||
FillBitmapRect8Bit(&pixelRect, x, y, width, height, fillValue);
|
||||
}
|
||||
|
||||
void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight, u8 paletteNum)
|
||||
{
|
||||
struct Bitmap sourceRect;
|
||||
struct Bitmap destRect;
|
||||
|
||||
sourceRect.pixels = (u8*)pixels;
|
||||
sourceRect.width = srcWidth;
|
||||
sourceRect.height = srcHeight;
|
||||
|
||||
destRect.pixels = gWindows[windowId].tileData;
|
||||
destRect.width = 8 * gWindows[windowId].window.width;
|
||||
destRect.height = 8 * gWindows[windowId].window.height;
|
||||
|
||||
BlitBitmapRect4BitTo8Bit(&sourceRect, &destRect, srcX, srcY, destX, destY, rectWidth, rectHeight, 0, paletteNum);
|
||||
}
|
||||
|
||||
void CopyWindowToVram8Bit(u8 windowId, u8 mode)
|
||||
{
|
||||
sWindowPtr = &gWindows[windowId];
|
||||
sWindowSize = 0x40 * (sWindowPtr->window.width * sWindowPtr->window.height);
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 1:
|
||||
CopyBgTilemapBufferToVram(sWindowPtr->window.priority);
|
||||
break;
|
||||
case 2:
|
||||
LoadBgTiles(sWindowPtr->window.priority, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock);
|
||||
break;
|
||||
case 3:
|
||||
LoadBgTiles(sWindowPtr->window.priority, sWindowPtr->tileData, sWindowSize, sWindowPtr->window.baseBlock);
|
||||
CopyBgTilemapBufferToVram(sWindowPtr->window.priority);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static u8 GetNumActiveWindowsOnBg8Bit(u8 bgId)
|
||||
{
|
||||
u8 windowsNum = 0;
|
||||
s32 i;
|
||||
for (i = 0; i < WINDOWS_MAX; i++)
|
||||
{
|
||||
if (gWindows[i].window.priority == bgId)
|
||||
windowsNum++;
|
||||
}
|
||||
return windowsNum;
|
||||
}
|
||||
+2
-6
@@ -31,13 +31,9 @@ gTrainerId: @ 2020000
|
||||
.include "src/malloc.o"
|
||||
.include "src/text_printer.o"
|
||||
.include "src/window.o"
|
||||
.include "src/window_8bpp.o"
|
||||
|
||||
gUnknown_2020634: @ 2020634
|
||||
.space 0x4
|
||||
|
||||
gUnknown_2020638: @ 2020638
|
||||
.space 0x4
|
||||
|
||||
.align 2
|
||||
gUnknown_202063C: @ 202063C
|
||||
.space 0x1C
|
||||
|
||||
|
||||
Reference in New Issue
Block a user