Merge pull request #480 from evanc577/window-bg

Document windowing functions
This commit is contained in:
Seth Barberee
2026-05-01 10:13:12 -07:00
committed by GitHub
30 changed files with 535 additions and 678 deletions

View File

@@ -1,14 +0,0 @@
#ifndef GUARD_CODE_800558C_H
#define GUARD_CODE_800558C_H
extern bool8 gUnknown_2026E38;
extern s16 *gUnknown_2026E3C;
extern s16 gUnknown_2026E4E;
extern s16 *gUnknown_203B078;
void sub_80057E8(void);
void sub_8005838(s32 *, u8 kind);
void sub_80060EC(void);
#endif // GUARD_CODE_800558C_H

View File

@@ -43,7 +43,7 @@ extern void (*ScrollUpWindowFunc)(s32 windowId);
extern void (*gIwramTextFunc3)(s32 a0);
extern void (*gIwramTextFunc4)(s32 a0);
extern s16 gUnknown_3000E94[161];
extern s16 gWindowBg[161];
extern const u32 gUnknown_80B853C[16];
extern const unkShiftData gCharMasksOffsets[8];

View File

@@ -16,7 +16,7 @@ void sub_8007B7C(u32 a0, s32 x, s32 y, s32 a3, u32 color);
// srcGFX: Each u32 is 8 packed pixels, 4 bits per pixel.
void WriteGFXToBG0Window(u32 winID, u32 x, u32 y, u32 w, u32 h, u32 *srcGFX, u32 palNum);
void sub_80087EC(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
void sub_80089AC(const WindowTemplate *r4, DungeonPos *r5_Str);
void DrawWindowBg(const WindowTemplate *window, DungeonPos *pos);
u32 DrawCharOnWindow(s32 x, s32 y, u32 chr, u32 color, u32 windowId);
bool8 xxx_call_update_bg_vram(void);
u32 DrawCharOnWindowInternal(Window *windows, s32 x, s32 y, u32 chr, u32 color, u32 windowId);

23
include/window_buffer.h Normal file
View File

@@ -0,0 +1,23 @@
#ifndef GUARD_WINDOW_BUFFER_H
#define GUARD_WINDOW_BUFFER_H
extern bool8 gDrawWindow;
extern s16 *gWinBufferPtr;
extern s16 gUnknown_2026E4E;
extern s16 *gWindowBgCopy;
typedef enum CopyWindowBgBufferType {
COPY_WINDOW_BG_BUFFER_WIN0,
COPY_WINDOW_BG_BUFFER_DIM2, // Dim while in light darkness corridor
COPY_WINDOW_BG_BUFFER_DIM1, // Same but for heavy darkness
COPY_WINDOW_BG_BUFFER_ROOM_DIM, // While in a room, dim outside
COPY_WINDOW_BG_BUFFER_UNK4,
COPY_WINDOW_BG_BUFFER_UNK5,
} CopyWindowBgBufferType;
void WindowBgBufferInit(void);
void CopyWindowBgBuffer(s32 *pos, u8 kind);
void ToggleWindowBgBuffer(void);
#endif // GUARD_WINDOW_BUFFER_H