mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-26 00:32:20 -05:00
document scroll prompts (#689)
This commit is contained in:
parent
825e31c361
commit
cb6665c7c4
|
|
@ -10,15 +10,15 @@
|
|||
void ov5_021D2F14(UnkStruct_ov5_021D30A8 *param0, const SpriteResourceDataPaths *param1, u32 param2, u32 heapID);
|
||||
void ov5_021D30A8(UnkStruct_ov5_021D30A8 *param0);
|
||||
Sprite *ov5_021D3104(UnkStruct_ov5_021D30A8 *param0, const SpriteTemplateFromResourceHeader *param1);
|
||||
void ov5_021D3190(UnkStruct_ov5_021D30A8 *param0, SpriteResourceCapacities *param1, u32 param2, u32 heapID);
|
||||
void ov5_021D3190(UnkStruct_ov5_021D30A8 *param0, SpriteResourceCapacities *capacities, u32 maxElements, u32 heapID);
|
||||
void ov5_021D3270(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int param3, int param4, int param5, int param6);
|
||||
void ov5_021D32E8(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4, int param5, int param6);
|
||||
void ov5_021D32E8(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int paletteIdx, int vramType, int id);
|
||||
void ov5_021D3360(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int param3, int param4);
|
||||
void ov5_021D3374(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4);
|
||||
void ov5_021D3374(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int id);
|
||||
void ov5_021D3388(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int param3, int param4);
|
||||
void ov5_021D339C(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4);
|
||||
void ov5_021D339C(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int id);
|
||||
void ov5_021D33B0(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, BOOL param3, int param4, int param5);
|
||||
void ov5_021D3414(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, BOOL param3, int param4, int param5);
|
||||
void ov5_021D3414(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int vramType, int id);
|
||||
ManagedSprite *ov5_021D3584(UnkStruct_ov5_021D30A8 *param0, const SpriteTemplate *param1);
|
||||
void ov5_021D375C(UnkStruct_ov5_021D30A8 *param0);
|
||||
|
||||
|
|
|
|||
|
|
@ -44,8 +44,8 @@ enum AccessoryShopSpriteResourceIdx {
|
|||
};
|
||||
|
||||
enum AccessoryShopStaticSprite {
|
||||
ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_TOP = 0,
|
||||
ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_BOTTOM,
|
||||
ACCESSORY_SHOP_SPRITE_SCROLL_TOP_ARROW = 0,
|
||||
ACCESSORY_SHOP_SPRITE_SCROLL_BOTTOM_ARROW,
|
||||
|
||||
ACCESSORY_SHOP_SPRITE_COUNT,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_OV23_02250CD4_H
|
||||
#define POKEPLATINUM_STRUCT_OV23_02250CD4_H
|
||||
|
||||
#include "struct_defs/struct_0206A844.h"
|
||||
|
||||
#include "field/field_system_decl.h"
|
||||
#include "overlay005/struct_ov5_021D30A8.h"
|
||||
#include "overlay023/funcptr_ov23_0224F758.h"
|
||||
|
|
@ -14,6 +12,7 @@
|
|||
#include "bg_window.h"
|
||||
#include "list_menu.h"
|
||||
#include "menu.h"
|
||||
#include "scroll_prompts.h"
|
||||
#include "sprite_system.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
|
|
@ -23,7 +22,7 @@
|
|||
typedef struct {
|
||||
void *unk_00;
|
||||
SysTask *unk_04;
|
||||
UnkStruct_0206A844 *unk_08;
|
||||
ScrollPrompts *unk_08;
|
||||
FieldSystem *fieldSystem;
|
||||
Window unk_10;
|
||||
Window unk_20;
|
||||
|
|
|
|||
27
include/scroll_prompts.h
Normal file
27
include/scroll_prompts.h
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef POKEPLATINUM_UNK_0206A780_H
|
||||
#define POKEPLATINUM_UNK_0206A780_H
|
||||
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "overlay005/struct_ov5_021D30A8.h"
|
||||
|
||||
#include "sprite_system.h"
|
||||
|
||||
enum ScrollPromptArrows {
|
||||
SCROLL_PROMPT_TOP_ARROW = 0,
|
||||
SCROLL_PROMPT_BOTTOM_ARROW,
|
||||
SCROLL_PROMPT_ARROW_COUNT,
|
||||
};
|
||||
|
||||
typedef struct ScrollPrompts {
|
||||
UnkStruct_ov5_021D30A8 unk_00;
|
||||
ManagedSprite *arrowSprites[SCROLL_PROMPT_ARROW_COUNT];
|
||||
} ScrollPrompts;
|
||||
|
||||
ScrollPrompts *ScrollPrompts_New(enum HeapId heapID);
|
||||
void ScrollPrompts_Free(ScrollPrompts *prompts);
|
||||
void ScrollPrompts_UpdateAnim(ScrollPrompts *prompts);
|
||||
void ScrollPrompts_SetPosition(ScrollPrompts *prompts, s16 x, s16 topArrowY, s16 bottomArrowY);
|
||||
void ScrollPrompts_SetDrawFlag(ScrollPrompts *prompts, u16 arrowIndex, BOOL draw);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0206A780_H
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#ifndef POKEPLATINUM_STRUCT_0206A844_H
|
||||
#define POKEPLATINUM_STRUCT_0206A844_H
|
||||
|
||||
#include "overlay005/struct_ov5_021D30A8.h"
|
||||
|
||||
#include "sprite_system.h"
|
||||
|
||||
typedef struct {
|
||||
UnkStruct_ov5_021D30A8 unk_00;
|
||||
ManagedSprite *unk_1C8[2];
|
||||
} UnkStruct_0206A844;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_0206A844_H
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#ifndef POKEPLATINUM_UNK_0206A780_H
|
||||
#define POKEPLATINUM_UNK_0206A780_H
|
||||
|
||||
#include "struct_defs/struct_0206A844.h"
|
||||
|
||||
UnkStruct_0206A844 *sub_0206A780(int heapID);
|
||||
void sub_0206A844(UnkStruct_0206A844 *param0);
|
||||
void sub_0206A870(UnkStruct_0206A844 *param0);
|
||||
void sub_0206A8A0(UnkStruct_0206A844 *param0, s16 param1, s16 param2, s16 param3);
|
||||
void sub_0206A8C4(UnkStruct_0206A844 *param0, u16 param1, BOOL param2);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0206A780_H
|
||||
|
|
@ -200,7 +200,7 @@ res/prebuilt/graphic/ev_pokeselect.narc,/graphic/ev_pokeselect.narc
|
|||
res/prebuilt/graphic/f_note_gra.narc,/graphic/f_note_gra.narc
|
||||
res/graphics/signposts/field_board.narc,/graphic/field_board.narc
|
||||
res/prebuilt/graphic/field_encounteffect.narc,/graphic/field_encounteffect.narc
|
||||
res/prebuilt/graphic/fld_comact.narc,/graphic/fld_comact.narc
|
||||
res/graphics/scroll_prompts/fld_comact.narc,/graphic/fld_comact.narc
|
||||
res/prebuilt/graphic/font.narc,/graphic/font.narc
|
||||
res/prebuilt/graphic/fontoam.narc,/graphic/fontoam.narc
|
||||
res/prebuilt/graphic/footprint_board.narc,/graphic/footprint_board.narc
|
||||
|
|
|
|||
|
|
|
@ -199,7 +199,7 @@ d91ceca1e3ef5e57061dabc690c0f1a1556dc624 *res/prebuilt/graphic/ev_pokeselect.nar
|
|||
5c673be62fe6bddfa911e3be26762b7e47d60b41 *res/prebuilt/graphic/f_note_gra.narc
|
||||
4941a639804c2b009836d1ab9b86a2ab0bb0c436 *res/graphics/signposts/field_board.narc
|
||||
3a71f8eca65f2524f96c4bb8463800ae19a70a90 *res/prebuilt/graphic/field_encounteffect.narc
|
||||
e4ad5fcd9010114089a5ded83a077a75860d633a *res/prebuilt/graphic/fld_comact.narc
|
||||
e4ad5fcd9010114089a5ded83a077a75860d633a *res/graphics/scroll_prompts/fld_comact.narc
|
||||
1122e901209b1047fbbacb1a47311c8bd529a647 *res/prebuilt/graphic/font.narc
|
||||
02e2132b2bb08413d890c220bff7219e3725f7c2 *res/prebuilt/graphic/fontoam.narc
|
||||
e7266bd8b7095861b6e1fdaf4f13cb648a9c325d *res/prebuilt/graphic/footprint_board.narc
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ Static main
|
|||
Object main.nef.p/src_item_use_functions.c.o
|
||||
Object main.nef.p/src_pokeradar.c.o
|
||||
Object main.nef.p/src_unk_02069BE0.c.o
|
||||
Object main.nef.p/src_unk_0206A780.c.o
|
||||
Object main.nef.p/src_scroll_prompts.c.o
|
||||
Object main.nef.p/src_system_flags.c.o
|
||||
Object main.nef.p/src_system_vars.c.o
|
||||
Object main.nef.p/src_unk_0206B70C.c.o
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
subdir('options_menu')
|
||||
subdir('pokemon_summary_screen')
|
||||
subdir('scroll_prompts')
|
||||
subdir('shop_menu')
|
||||
subdir('signposts')
|
||||
subdir('title_screen')
|
||||
|
|
|
|||
4
res/graphics/scroll_prompts/fld_comact.order
Normal file
4
res/graphics/scroll_prompts/fld_comact.order
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
scroll_prompts.NCLR
|
||||
scroll_prompts.NCGR
|
||||
scroll_prompts_cell.NCER
|
||||
scroll_prompts_anim.NANR
|
||||
35
res/graphics/scroll_prompts/meson.build
Normal file
35
res/graphics/scroll_prompts/meson.build
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
scroll_prompts_png = files('scroll_prompts.png')
|
||||
scroll_prompts_ncgr = ncgr_gen.process(scroll_prompts_png,
|
||||
extra_args: [ '-version101', '-clobbersize', ],
|
||||
)
|
||||
scroll_prompts_nclr = nclr_gen.process(scroll_prompts_png,
|
||||
extra_args: [ '-bitdepth', '4', '-pcmp', '-nopad', '-invertsize', ],
|
||||
)
|
||||
|
||||
scroll_prompts_ncer = ncer_gen.process(files('scroll_prompts_cell.json'))
|
||||
scroll_prompts_nanr = nanr_gen.process(files('scroll_prompts_anim.json'))
|
||||
|
||||
fld_comact_order = files('fld_comact.order')
|
||||
fld_comact_narc = custom_target('fld_comact.narc',
|
||||
output: [
|
||||
'fld_comact.narc',
|
||||
'fld_comact.naix.h',
|
||||
],
|
||||
input: [
|
||||
scroll_prompts_ncgr,
|
||||
scroll_prompts_nclr,
|
||||
scroll_prompts_ncer,
|
||||
scroll_prompts_nanr,
|
||||
fld_comact_order,
|
||||
],
|
||||
command: [
|
||||
narc_exe, 'create',
|
||||
'--naix',
|
||||
'--order', fld_comact_order,
|
||||
'--output', '@OUTPUT0@',
|
||||
'@PRIVATE_DIR@',
|
||||
]
|
||||
)
|
||||
|
||||
nitrofs_files += fld_comact_narc
|
||||
naix_headers += fld_comact_narc[1]
|
||||
BIN
res/graphics/scroll_prompts/scroll_prompts.png
Normal file
BIN
res/graphics/scroll_prompts/scroll_prompts.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 200 B |
78
res/graphics/scroll_prompts/scroll_prompts_anim.json
Normal file
78
res/graphics/scroll_prompts/scroll_prompts_anim.json
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"sequenceCount": 2,
|
||||
"frameCount": 8,
|
||||
"sequences": [{
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 2,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 8,
|
||||
"resultId": 0
|
||||
}, {
|
||||
"frameDelay": 8,
|
||||
"resultId": 1
|
||||
}, {
|
||||
"frameDelay": 8,
|
||||
"resultId": 2
|
||||
}, {
|
||||
"frameDelay": 8,
|
||||
"resultId": 1
|
||||
}]
|
||||
}, {
|
||||
"frameCount": 4,
|
||||
"loopStartFrame": 0,
|
||||
"animationElement": 2,
|
||||
"animationType": 1,
|
||||
"playbackMode": 2,
|
||||
"frameData": [{
|
||||
"frameDelay": 8,
|
||||
"resultId": 3
|
||||
}, {
|
||||
"frameDelay": 8,
|
||||
"resultId": 4
|
||||
}, {
|
||||
"frameDelay": 8,
|
||||
"resultId": 5
|
||||
}, {
|
||||
"frameDelay": 8,
|
||||
"resultId": 4
|
||||
}]
|
||||
}],
|
||||
"animationResults": [{
|
||||
"resultType": 2,
|
||||
"index": 0,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 2,
|
||||
"index": 0,
|
||||
"positionX": 0,
|
||||
"positionY": -1
|
||||
}, {
|
||||
"resultType": 2,
|
||||
"index": 0,
|
||||
"positionX": 0,
|
||||
"positionY": -2
|
||||
}, {
|
||||
"resultType": 2,
|
||||
"index": 1,
|
||||
"positionX": 0,
|
||||
"positionY": 0
|
||||
}, {
|
||||
"resultType": 2,
|
||||
"index": 1,
|
||||
"positionX": 0,
|
||||
"positionY": 1
|
||||
}, {
|
||||
"resultType": 2,
|
||||
"index": 1,
|
||||
"positionX": 0,
|
||||
"positionY": 2
|
||||
}],
|
||||
"resultCount": 6,
|
||||
"labels": ["CellAnime0", "CellAnime1"],
|
||||
"labelCount": 2
|
||||
}
|
||||
78
res/graphics/scroll_prompts/scroll_prompts_cell.json
Normal file
78
res/graphics/scroll_prompts/scroll_prompts_cell.json
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"labelEnabled": true,
|
||||
"extended": true,
|
||||
"vramTransferEnabled": false,
|
||||
"cellCount": 2,
|
||||
"mappingType": 0,
|
||||
"cells": [{
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 0,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"cellAttrs": {
|
||||
"hFlip": false,
|
||||
"vFlip": false,
|
||||
"hvFlip": false,
|
||||
"boundingRect": true,
|
||||
"boundingSphereRadius": 3
|
||||
},
|
||||
"maxX": 7,
|
||||
"maxY": 7,
|
||||
"minX": -8,
|
||||
"minY": -8,
|
||||
"oamCount": 1,
|
||||
"OAM": [{
|
||||
"Attr0": {
|
||||
"YCoordinate": 248,
|
||||
"Rotation": false,
|
||||
"SizeDisable": false,
|
||||
"Mode": 0,
|
||||
"Mosaic": false,
|
||||
"Colours": 16,
|
||||
"Shape": 0
|
||||
},
|
||||
"Attr1": {
|
||||
"XCoordinate": 504,
|
||||
"RotationScaling": 0,
|
||||
"Size": 1
|
||||
},
|
||||
"Attr2": {
|
||||
"CharName": 4,
|
||||
"Priority": 0,
|
||||
"Palette": 0
|
||||
}
|
||||
}]
|
||||
}],
|
||||
"labels": ["CellAnime0", "CellAnime1"],
|
||||
"labelCount": 2
|
||||
}
|
||||
|
|
@ -249,7 +249,7 @@ pokeplatinum_c = files(
|
|||
'item_use_functions.c',
|
||||
'pokeradar.c',
|
||||
'unk_02069BE0.c',
|
||||
'unk_0206A780.c',
|
||||
'scroll_prompts.c',
|
||||
'system_flags.c',
|
||||
'system_vars.c',
|
||||
'unk_0206B70C.c',
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
static BOOL ov5_021D3478(SpriteResourceList *param0, SpriteResource *param1);
|
||||
static void ov5_021D34AC(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int param3, int param4, int param5);
|
||||
static void ov5_021D3518(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4, int param5);
|
||||
static void ov5_021D3518(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, enum SpriteResourceType type, int id);
|
||||
|
||||
void ov5_021D2F14(UnkStruct_ov5_021D30A8 *param0, const SpriteResourceDataPaths *param1, u32 param2, u32 heapID)
|
||||
{
|
||||
|
|
@ -117,7 +117,7 @@ Sprite *ov5_021D3104(UnkStruct_ov5_021D30A8 *param0, const SpriteTemplateFromRes
|
|||
return v1;
|
||||
}
|
||||
|
||||
void ov5_021D3190(UnkStruct_ov5_021D30A8 *param0, SpriteResourceCapacities *param1, u32 param2, u32 heapID)
|
||||
void ov5_021D3190(UnkStruct_ov5_021D30A8 *param0, SpriteResourceCapacities *capacities, u32 maxElements, u32 heapID)
|
||||
{
|
||||
SpriteResourceTable *v0;
|
||||
SpriteResourceTable *v1;
|
||||
|
|
@ -125,10 +125,10 @@ void ov5_021D3190(UnkStruct_ov5_021D30A8 *param0, SpriteResourceCapacities *para
|
|||
u32 v3;
|
||||
u32 v4, v5;
|
||||
|
||||
param0->unk_00 = SpriteList_InitRendering(param2, ¶m0->unk_04, heapID);
|
||||
param0->unk_00 = SpriteList_InitRendering(maxElements, ¶m0->unk_04, heapID);
|
||||
param0->heapID = heapID;
|
||||
|
||||
if ((param1->asStruct.mcellCapacity == 0) || (param1->asStruct.manimCapacity == 0)) {
|
||||
if ((capacities->asStruct.mcellCapacity == 0) || (capacities->asStruct.manimCapacity == 0)) {
|
||||
param0->unk_1C4 = 6 - 2;
|
||||
param0->unk_194[4] = NULL;
|
||||
param0->unk_194[5] = NULL;
|
||||
|
|
@ -137,15 +137,15 @@ void ov5_021D3190(UnkStruct_ov5_021D30A8 *param0, SpriteResourceCapacities *para
|
|||
}
|
||||
|
||||
for (v4 = 0; v4 < param0->unk_1C4; v4++) {
|
||||
param0->unk_194[v4] = SpriteResourceCollection_New(param1->asArray[v4], v4, heapID);
|
||||
param0->unk_194[v4] = SpriteResourceCollection_New(capacities->asArray[v4], v4, heapID);
|
||||
}
|
||||
|
||||
for (v4 = 0; v4 < param0->unk_1C4; v4++) {
|
||||
if (param1->asArray[v4] == 0) {
|
||||
if (capacities->asArray[v4] == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
param0->unk_1AC[v4] = SpriteResourceList_New(param1->asArray[v4], heapID);
|
||||
param0->unk_1AC[v4] = SpriteResourceList_New(capacities->asArray[v4], heapID);
|
||||
|
||||
for (v5 = 0; v5 < param0->unk_1AC[v4]->capacity; v5++) {
|
||||
param0->unk_1AC[v4]->resources[v5] = NULL;
|
||||
|
|
@ -177,24 +177,24 @@ void ov5_021D3270(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int pa
|
|||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
void ov5_021D32E8(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4, int param5, int param6)
|
||||
void ov5_021D32E8(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int paletteIdx, int vramType, int id)
|
||||
{
|
||||
SpriteResource *v0;
|
||||
int v1;
|
||||
|
||||
if (SpriteResourceCollection_IsIDUnused(param0->unk_194[1], param6) == 0) {
|
||||
if (SpriteResourceCollection_IsIDUnused(param0->unk_194[1], id) == 0) {
|
||||
GF_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = SpriteResourceCollection_AddPaletteFrom(param0->unk_194[1], param1, param2, param3, param6, param5, param4, param0->heapID);
|
||||
v0 = SpriteResourceCollection_AddPaletteFrom(param0->unk_194[1], narc, memberIdx, compressed, id, vramType, paletteIdx, param0->heapID);
|
||||
|
||||
if (v0 != NULL) {
|
||||
v1 = SpriteTransfer_RequestPlttFreeSpace(v0);
|
||||
GF_ASSERT(v1 == 1);
|
||||
|
||||
ov5_021D3478(param0->unk_1AC[1], v0);
|
||||
SpriteTransfer_GetPlttOffset(v0, param5);
|
||||
SpriteTransfer_GetPlttOffset(v0, vramType);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -206,9 +206,9 @@ void ov5_021D3360(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int pa
|
|||
ov5_021D34AC(param0, param1, param2, param3, 2, param4);
|
||||
}
|
||||
|
||||
void ov5_021D3374(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4)
|
||||
void ov5_021D3374(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int id)
|
||||
{
|
||||
ov5_021D3518(param0, param1, param2, param3, 2, param4);
|
||||
ov5_021D3518(param0, narc, memberIdx, compressed, SPRITE_RESOURCE_CELL, id);
|
||||
}
|
||||
|
||||
void ov5_021D3388(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int param3, int param4)
|
||||
|
|
@ -216,9 +216,9 @@ void ov5_021D3388(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, int pa
|
|||
ov5_021D34AC(param0, param1, param2, param3, 3, param4);
|
||||
}
|
||||
|
||||
void ov5_021D339C(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4)
|
||||
void ov5_021D339C(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int id)
|
||||
{
|
||||
ov5_021D3518(param0, param1, param2, param3, 3, param4);
|
||||
ov5_021D3518(param0, narc, memberIdx, compressed, SPRITE_RESOURCE_ANIM, id);
|
||||
}
|
||||
|
||||
void ov5_021D33B0(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, BOOL param3, int param4, int param5)
|
||||
|
|
@ -241,16 +241,16 @@ void ov5_021D33B0(UnkStruct_ov5_021D30A8 *param0, int param1, int param2, BOOL p
|
|||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
void ov5_021D3414(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, BOOL param3, int param4, int param5)
|
||||
void ov5_021D3414(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, int vramType, int id)
|
||||
{
|
||||
SpriteResource *v0;
|
||||
|
||||
if (SpriteResourceCollection_IsIDUnused(param0->unk_194[0], param5) == 0) {
|
||||
if (SpriteResourceCollection_IsIDUnused(param0->unk_194[0], id) == 0) {
|
||||
GF_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = SpriteResourceCollection_AddTilesFrom(param0->unk_194[0], param1, param2, param3, param5, param4, param0->heapID);
|
||||
v0 = SpriteResourceCollection_AddTilesFrom(param0->unk_194[0], narc, memberIdx, compressed, id, vramType, param0->heapID);
|
||||
|
||||
if (v0 != NULL) {
|
||||
SpriteTransfer_RequestCharAtEnd(v0);
|
||||
|
|
@ -301,20 +301,20 @@ static void ov5_021D34AC(UnkStruct_ov5_021D30A8 *param0, int param1, int param2,
|
|||
GF_ASSERT(0);
|
||||
}
|
||||
|
||||
static void ov5_021D3518(UnkStruct_ov5_021D30A8 *param0, NARC *param1, int param2, int param3, int param4, int param5)
|
||||
static void ov5_021D3518(UnkStruct_ov5_021D30A8 *param0, NARC *narc, int memberIdx, BOOL compressed, enum SpriteResourceType type, int id)
|
||||
{
|
||||
SpriteResource *v0;
|
||||
int v1;
|
||||
|
||||
if (SpriteResourceCollection_IsIDUnused(param0->unk_194[param4], param5) == 0) {
|
||||
if (SpriteResourceCollection_IsIDUnused(param0->unk_194[type], id) == 0) {
|
||||
GF_ASSERT(0);
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = SpriteResourceCollection_AddFrom(param0->unk_194[param4], param1, param2, param3, param5, param4, param0->heapID);
|
||||
v0 = SpriteResourceCollection_AddFrom(param0->unk_194[type], narc, memberIdx, compressed, id, type, param0->heapID);
|
||||
|
||||
if (v0 != NULL) {
|
||||
v1 = ov5_021D3478(param0->unk_1AC[param4], v0);
|
||||
v1 = ov5_021D3478(param0->unk_1AC[type], v0);
|
||||
|
||||
GF_ASSERT(v1 == 1);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -612,8 +612,8 @@ static void AccessoryShop_UpdateItemListMenu(AccessoryShopItemList *itemList)
|
|||
|
||||
static void AccessoryShop_HideScrollArrows(AccessoryShopItemList *itemList)
|
||||
{
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_TOP], FALSE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_BOTTOM], FALSE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_TOP_ARROW], FALSE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_BOTTOM_ARROW], FALSE);
|
||||
}
|
||||
|
||||
static void AccessoryShop_LoadScrollArrowGfx(SpriteResourcesHeader *scrollArrowResource, AccessoryShopItemList *itemList, enum HeapId heapID)
|
||||
|
|
@ -648,15 +648,15 @@ static void AccessoryShop_UpdateScrollArrowsVisibility(AccessoryShopItemList *it
|
|||
ListMenu_GetListAndCursorPos(itemList->listMenu, &listPos, NULL);
|
||||
|
||||
if (listPos <= 0) {
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_TOP], FALSE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_TOP_ARROW], FALSE);
|
||||
} else {
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_TOP], TRUE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_TOP_ARROW], TRUE);
|
||||
}
|
||||
|
||||
if (listPos >= (itemList->maxListItems - MAX_ITEM_SHOWN)) {
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_BOTTOM], FALSE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_BOTTOM_ARROW], FALSE);
|
||||
} else {
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_ARROW_BOTTOM], TRUE);
|
||||
Sprite_SetDrawFlag(itemList->sprites[ACCESSORY_SHOP_SPRITE_SCROLL_BOTTOM_ARROW], TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include "player_avatar.h"
|
||||
#include "render_window.h"
|
||||
#include "save_player.h"
|
||||
#include "scroll_prompts.h"
|
||||
#include "sound_playback.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_system.h"
|
||||
|
|
@ -56,7 +57,6 @@
|
|||
#include "system.h"
|
||||
#include "trainer_info.h"
|
||||
#include "unk_0202854C.h"
|
||||
#include "unk_0206A780.h"
|
||||
|
||||
typedef void (*UnkFuncPtr_ov23_0224FA58)(UnkStruct_ov23_02250CD4 *);
|
||||
|
||||
|
|
@ -632,10 +632,10 @@ static BOOL ov23_0224FA58(SysTask *param0, void *param1)
|
|||
break;
|
||||
default:
|
||||
if ((v0->unk_2A0 == (u32)ov23_0224FDE0) || (v0->unk_2A0 == (u32)ov23_022501BC) || (v0->unk_2A0 == (u32)ov23_02250CD4) || (v0->unk_2A0 == (u32)ov23_02250598)) {
|
||||
v0->unk_08 = sub_0206A780(HEAP_ID_FIELD);
|
||||
sub_0206A8A0(v0->unk_08, 200, 20, 122);
|
||||
sub_0206A8C4(v0->unk_08, 0, 0);
|
||||
sub_0206A8C4(v0->unk_08, 1, 0);
|
||||
v0->unk_08 = ScrollPrompts_New(HEAP_ID_FIELD);
|
||||
ScrollPrompts_SetPosition(v0->unk_08, 200, 20, 122);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
}
|
||||
|
||||
if (v0->unk_25C) {
|
||||
|
|
@ -771,7 +771,7 @@ static void ov23_0224FD3C(UnkStruct_ov23_02250CD4 *param0)
|
|||
ov23_0224FB7C(param0);
|
||||
|
||||
if (param0->unk_08) {
|
||||
sub_0206A844(param0->unk_08);
|
||||
ScrollPrompts_Free(param0->unk_08);
|
||||
param0->unk_08 = NULL;
|
||||
}
|
||||
|
||||
|
|
@ -914,8 +914,8 @@ static BOOL Underground_HandleTrapsMenu(SysTask *param0, void *param1)
|
|||
UndergroundTextPrinter_PrintTextInstant(CommManUnderground_GetCommonTextPrinter(), 129, FALSE, NULL);
|
||||
}
|
||||
}
|
||||
sub_0206A8C4(v0->unk_08, 0, 0);
|
||||
sub_0206A8C4(v0->unk_08, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1098,8 +1098,8 @@ static BOOL Underground_HandleSpheresMenu(SysTask *param0, void *param1)
|
|||
v0->unk_2AA = 16;
|
||||
UndergroundTextPrinter_SetUndergroundItemName(CommManUnderground_GetCommonTextPrinter(), 2, Unk_ov23_022577B8->selectedID);
|
||||
UndergroundTextPrinter_PrintTextInstant(CommManUnderground_GetCommonTextPrinter(), 129, FALSE, NULL);
|
||||
sub_0206A8C4(v0->unk_08, 0, FALSE);
|
||||
sub_0206A8C4(v0->unk_08, 1, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1275,8 +1275,8 @@ static BOOL Underground_HandleTreasuresMenu(SysTask *param0, void *param1)
|
|||
|
||||
v0->unk_2AA = 17;
|
||||
|
||||
sub_0206A8C4(v0->unk_08, 0, 0);
|
||||
sub_0206A8C4(v0->unk_08, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1472,7 +1472,7 @@ static void ov23_02250B34(SysTask *param0, UnkStruct_ov23_02250CD4 *param1, BOOL
|
|||
param1->unk_04 = NULL;
|
||||
|
||||
if (param1->unk_08) {
|
||||
sub_0206A844(param1->unk_08);
|
||||
ScrollPrompts_Free(param1->unk_08);
|
||||
}
|
||||
|
||||
Heap_Free(param1);
|
||||
|
|
@ -1679,8 +1679,8 @@ static BOOL Underground_HandleGoodsMenu(SysTask *param0, void *param1)
|
|||
|
||||
v0->unk_2AA = 19;
|
||||
|
||||
sub_0206A8C4(v0->unk_08, 0, 0);
|
||||
sub_0206A8C4(v0->unk_08, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -1753,7 +1753,7 @@ void ov23_02251044(void *param0, u32 param1)
|
|||
ov23_0224FCF4(v0);
|
||||
|
||||
if (v0->unk_08) {
|
||||
sub_0206A844(v0->unk_08);
|
||||
ScrollPrompts_Free(v0->unk_08);
|
||||
}
|
||||
|
||||
if (v0->unk_260 != NULL) {
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "render_window.h"
|
||||
#include "save_player.h"
|
||||
#include "screen_fade.h"
|
||||
#include "scroll_prompts.h"
|
||||
#include "sound_playback.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
|
|
@ -47,7 +48,6 @@
|
|||
#include "system_flags.h"
|
||||
#include "unk_0202854C.h"
|
||||
#include "unk_02033200.h"
|
||||
#include "unk_0206A780.h"
|
||||
#include "vars_flags.h"
|
||||
|
||||
typedef struct {
|
||||
|
|
@ -91,18 +91,18 @@ void ov23_0225128C(UnkStruct_ov23_02250CD4 *param0, int param1, int param2, int
|
|||
}
|
||||
|
||||
if (param1 != 0) {
|
||||
sub_0206A8C4(param0->unk_08, 0, 1);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_08, SCROLL_PROMPT_TOP_ARROW, TRUE);
|
||||
} else {
|
||||
sub_0206A8C4(param0->unk_08, 0, 0);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
}
|
||||
|
||||
if (param2 != (param1 + param3)) {
|
||||
sub_0206A8C4(param0->unk_08, 1, 1);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, TRUE);
|
||||
} else {
|
||||
sub_0206A8C4(param0->unk_08, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
}
|
||||
|
||||
sub_0206A870(param0->unk_08);
|
||||
ScrollPrompts_UpdateAnim(param0->unk_08);
|
||||
}
|
||||
|
||||
int ov23_022512D4(Coordinates *param0, int param1)
|
||||
|
|
@ -565,8 +565,8 @@ static BOOL ov23_02251960(SysTask *param0, void *param1)
|
|||
break;
|
||||
}
|
||||
|
||||
sub_0206A8C4(v0->unk_08, 0, 0);
|
||||
sub_0206A8C4(v0->unk_08, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v0->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -660,7 +660,7 @@ static void ov23_02251BB4(SysTask *param0, UnkStruct_ov23_02250CD4 *param1)
|
|||
}
|
||||
|
||||
if (param1->unk_08) {
|
||||
sub_0206A844(param1->unk_08);
|
||||
ScrollPrompts_Free(param1->unk_08);
|
||||
param1->unk_08 = NULL;
|
||||
}
|
||||
|
||||
|
|
@ -844,11 +844,11 @@ static void ov23_02251F94(FieldSystem *fieldSystem)
|
|||
v1->strbuf = Strbuf_Init((50 * 2), HEAP_ID_FIELD);
|
||||
v1->fmtString = Strbuf_Init((50 * 2), HEAP_ID_FIELD);
|
||||
v1->template = StringTemplate_Default(HEAP_ID_FIELD);
|
||||
v1->unk_08 = sub_0206A780(HEAP_ID_FIELD);
|
||||
v1->unk_08 = ScrollPrompts_New(HEAP_ID_FIELD);
|
||||
|
||||
sub_0206A8A0(v1->unk_08, 200, 20, 122);
|
||||
sub_0206A8C4(v1->unk_08, 0, 0);
|
||||
sub_0206A8C4(v1->unk_08, 1, 0);
|
||||
ScrollPrompts_SetPosition(v1->unk_08, 200, 20, 122);
|
||||
ScrollPrompts_SetDrawFlag(v1->unk_08, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(v1->unk_08, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
|
||||
v1->unk_04 = SysTask_Start(ov23_02251C04, v1, 10000);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_defs/struct_0206A844.h"
|
||||
#include "struct_defs/underground.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
|
|
@ -19,13 +18,13 @@
|
|||
#include "list_menu.h"
|
||||
#include "message.h"
|
||||
#include "render_window.h"
|
||||
#include "scroll_prompts.h"
|
||||
#include "sound_playback.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
#include "string_template.h"
|
||||
#include "text.h"
|
||||
#include "unk_0202854C.h"
|
||||
#include "unk_0206A780.h"
|
||||
|
||||
typedef struct UnkStruct_ov23_022542D8_t {
|
||||
FieldSystem *fieldSystem;
|
||||
|
|
@ -43,7 +42,7 @@ typedef struct UnkStruct_ov23_022542D8_t {
|
|||
|
||||
typedef struct UnkStruct_ov23_02254594_t {
|
||||
FieldSystem *fieldSystem;
|
||||
UnkStruct_0206A844 *unk_04;
|
||||
ScrollPrompts *unk_04;
|
||||
Window unk_08;
|
||||
Window unk_18;
|
||||
StringList *unk_28;
|
||||
|
|
@ -65,7 +64,7 @@ static void ov23_0225451C(UnkStruct_ov23_022542D8 *param0);
|
|||
static void ov23_022546E0(UnkStruct_ov23_02254594 *param0);
|
||||
static void ov23_0225461C(UnkStruct_ov23_02254594 *param0);
|
||||
static void ov23_02254958(UnkStruct_ov23_02254594 *param0);
|
||||
static void ov23_022549A8(UnkStruct_0206A844 *param0, const u16 param1, const u16 param2, const u16 param3);
|
||||
static void ov23_022549A8(ScrollPrompts *param0, const u16 param1, const u16 param2, const u16 param3);
|
||||
static void ov23_022549EC(UnkStruct_ov23_022542D8 *param0);
|
||||
|
||||
static const ListMenuTemplate Unk_ov23_02256B3C = {
|
||||
|
|
@ -310,7 +309,7 @@ BOOL ov23_022545DC(UnkStruct_ov23_02254594 *param0)
|
|||
}
|
||||
|
||||
if (param0->unk_04) {
|
||||
sub_0206A870(param0->unk_04);
|
||||
ScrollPrompts_UpdateAnim(param0->unk_04);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -477,11 +476,11 @@ static void ov23_022546E0(UnkStruct_ov23_02254594 *param0)
|
|||
Window_CopyToVRAM(¶m0->unk_08);
|
||||
Window_CopyToVRAM(¶m0->unk_18);
|
||||
|
||||
param0->unk_04 = sub_0206A780(HEAP_ID_FIELD);
|
||||
param0->unk_04 = ScrollPrompts_New(HEAP_ID_FIELD);
|
||||
|
||||
sub_0206A8A0(param0->unk_04, 200, 10 + 8 * 2, 118 + 8 * 2);
|
||||
sub_0206A8C4(param0->unk_04, 0, 0);
|
||||
sub_0206A8C4(param0->unk_04, 1, 0);
|
||||
ScrollPrompts_SetPosition(param0->unk_04, 200, 10 + 8 * 2, 118 + 8 * 2);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_04, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_04, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
|
||||
param0->unk_42 = 1;
|
||||
}
|
||||
|
|
@ -497,25 +496,25 @@ static void ov23_02254958(UnkStruct_ov23_02254594 *param0)
|
|||
Window_Remove(¶m0->unk_08);
|
||||
Window_Remove(¶m0->unk_18);
|
||||
StringList_Free(param0->unk_28);
|
||||
sub_0206A844(param0->unk_04);
|
||||
ScrollPrompts_Free(param0->unk_04);
|
||||
}
|
||||
|
||||
static void ov23_022549A8(UnkStruct_0206A844 *param0, const u16 param1, const u16 param2, const u16 param3)
|
||||
static void ov23_022549A8(ScrollPrompts *param0, const u16 param1, const u16 param2, const u16 param3)
|
||||
{
|
||||
if (param2 <= param3) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (param1 != 0) {
|
||||
sub_0206A8C4(param0, 0, 1);
|
||||
ScrollPrompts_SetDrawFlag(param0, SCROLL_PROMPT_TOP_ARROW, TRUE);
|
||||
} else {
|
||||
sub_0206A8C4(param0, 0, 0);
|
||||
ScrollPrompts_SetDrawFlag(param0, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
}
|
||||
|
||||
if (param2 != (param1 + param3)) {
|
||||
sub_0206A8C4(param0, 1, 1);
|
||||
ScrollPrompts_SetDrawFlag(param0, SCROLL_PROMPT_BOTTOM_ARROW, TRUE);
|
||||
} else {
|
||||
sub_0206A8C4(param0, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(param0, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
110
src/scroll_prompts.c
Normal file
110
src/scroll_prompts.c
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
#include "scroll_prompts.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "overlay005/ov5_021D2F14.h"
|
||||
|
||||
#include "heap.h"
|
||||
#include "narc.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_system.h"
|
||||
|
||||
#include "res/graphics/scroll_prompts/fld_comact.naix.h"
|
||||
|
||||
static const SpriteTemplate sArrowSpriteTemplates[] = {
|
||||
{
|
||||
.x = 80,
|
||||
.y = 16,
|
||||
.z = 0,
|
||||
.animIdx = 0,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 0x34D8, 0x34D8, 0x34D8, 0x34D8, 0x0, 0x0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
{
|
||||
.x = 80,
|
||||
.y = 224,
|
||||
.z = 0,
|
||||
.animIdx = 1,
|
||||
.priority = 0,
|
||||
.plttIdx = 0,
|
||||
.vramType = NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
.resources = { 0x34D8, 0x34D8, 0x34D8, 0x34D8, 0x0, 0x0 },
|
||||
.bgPriority = 0,
|
||||
.vramTransfer = FALSE,
|
||||
},
|
||||
};
|
||||
|
||||
ScrollPrompts *ScrollPrompts_New(enum HeapId heapID)
|
||||
{
|
||||
SpriteResourceCapacities capacities = {
|
||||
.asStruct = {
|
||||
.charCapacity = 1,
|
||||
.plttCapacity = 1,
|
||||
.cellCapacity = 1,
|
||||
.animCapacity = 1,
|
||||
.mcellCapacity = 0,
|
||||
.manimCapacity = 0,
|
||||
}
|
||||
};
|
||||
ScrollPrompts *prompts = Heap_AllocFromHeap(heapID, sizeof(ScrollPrompts));
|
||||
MI_CpuClear8(prompts, sizeof(ScrollPrompts));
|
||||
|
||||
ov5_021D3190(&prompts->unk_00, &capacities, 2, HEAP_ID_FIELDMAP);
|
||||
|
||||
NARC *narc = NARC_ctor(NARC_INDEX_GRAPHIC__FLD_COMACT, heapID);
|
||||
|
||||
ov5_021D32E8(&prompts->unk_00, narc, scroll_prompts_NCLR, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 13528);
|
||||
ov5_021D3374(&prompts->unk_00, narc, scroll_prompts_cell_NCER, FALSE, 13528);
|
||||
ov5_021D339C(&prompts->unk_00, narc, scroll_prompts_anim_NANR, FALSE, 13528);
|
||||
ov5_021D3414(&prompts->unk_00, narc, scroll_prompts_NCGR, FALSE, NNS_G2D_VRAM_TYPE_2DMAIN, 13528);
|
||||
|
||||
for (u32 i = 0; i < SCROLL_PROMPT_ARROW_COUNT; i++) {
|
||||
prompts->arrowSprites[i] = ov5_021D3584(&prompts->unk_00, &sArrowSpriteTemplates[i]);
|
||||
}
|
||||
|
||||
NARC_dtor(narc);
|
||||
return prompts;
|
||||
}
|
||||
|
||||
void ScrollPrompts_Free(ScrollPrompts *prompts)
|
||||
{
|
||||
for (int i = 0; i < SCROLL_PROMPT_ARROW_COUNT; i++) {
|
||||
if (prompts->arrowSprites[i] != NULL) {
|
||||
Sprite_DeleteAndFreeResources(prompts->arrowSprites[i]);
|
||||
}
|
||||
}
|
||||
|
||||
ov5_021D375C(&prompts->unk_00);
|
||||
Heap_Free(prompts);
|
||||
}
|
||||
|
||||
void ScrollPrompts_UpdateAnim(ScrollPrompts *prompts)
|
||||
{
|
||||
for (int i = 0; i < SCROLL_PROMPT_ARROW_COUNT; i++) {
|
||||
if (prompts->arrowSprites[i] != NULL) {
|
||||
Sprite_UpdateAnim(prompts->arrowSprites[i]->sprite, FX32_ONE);
|
||||
}
|
||||
}
|
||||
|
||||
SpriteList_Update(prompts->unk_00.unk_00);
|
||||
}
|
||||
|
||||
void ScrollPrompts_SetPosition(ScrollPrompts *prompts, s16 x, s16 topArrowY, s16 bottomArrowY)
|
||||
{
|
||||
ManagedSprite_SetPositionXY(prompts->arrowSprites[SCROLL_PROMPT_TOP_ARROW], x, topArrowY);
|
||||
ManagedSprite_SetPositionXY(prompts->arrowSprites[SCROLL_PROMPT_BOTTOM_ARROW], x, bottomArrowY);
|
||||
}
|
||||
|
||||
void ScrollPrompts_SetDrawFlag(ScrollPrompts *prompts, u16 arrowIndex, BOOL draw)
|
||||
{
|
||||
if (arrowIndex >= SCROLL_PROMPT_ARROW_COUNT) {
|
||||
return;
|
||||
}
|
||||
|
||||
ManagedSprite_SetDrawFlag(prompts->arrowSprites[arrowIndex], draw);
|
||||
}
|
||||
|
|
@ -1,111 +0,0 @@
|
|||
#include "unk_0206A780.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_defs/struct_0206A844.h"
|
||||
|
||||
#include "overlay005/ov5_021D2F14.h"
|
||||
|
||||
#include "heap.h"
|
||||
#include "narc.h"
|
||||
#include "sprite.h"
|
||||
#include "sprite_system.h"
|
||||
|
||||
static const SpriteTemplate Unk_020EFA04[] = {
|
||||
{
|
||||
0x50,
|
||||
0x10,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0x34D8, 0x34D8, 0x34D8, 0x34D8, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
{
|
||||
0x50,
|
||||
0xE0,
|
||||
0x0,
|
||||
0x1,
|
||||
0x0,
|
||||
0x0,
|
||||
NNS_G2D_VRAM_TYPE_2DMAIN,
|
||||
{ 0x34D8, 0x34D8, 0x34D8, 0x34D8, 0x0, 0x0 },
|
||||
0x0,
|
||||
0x0,
|
||||
},
|
||||
};
|
||||
|
||||
UnkStruct_0206A844 *sub_0206A780(int heapID)
|
||||
{
|
||||
SpriteResourceCapacities v0 = {
|
||||
1, 1, 1, 1, 0, 0
|
||||
};
|
||||
u32 v1;
|
||||
UnkStruct_0206A844 *v2;
|
||||
NARC *v3;
|
||||
|
||||
v2 = Heap_AllocFromHeap(heapID, sizeof(UnkStruct_0206A844));
|
||||
MI_CpuClear8(v2, sizeof(UnkStruct_0206A844));
|
||||
|
||||
ov5_021D3190(&v2->unk_00, &v0, 2, HEAP_ID_FIELDMAP);
|
||||
|
||||
v3 = NARC_ctor(NARC_INDEX_GRAPHIC__FLD_COMACT, heapID);
|
||||
|
||||
ov5_021D32E8(&v2->unk_00, v3, 0, 0, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 13528);
|
||||
ov5_021D3374(&v2->unk_00, v3, 2, 0, 13528);
|
||||
ov5_021D339C(&v2->unk_00, v3, 3, 0, 13528);
|
||||
ov5_021D3414(&v2->unk_00, v3, 1, 0, NNS_G2D_VRAM_TYPE_2DMAIN, 13528);
|
||||
|
||||
for (v1 = 0; v1 < 2; v1++) {
|
||||
v2->unk_1C8[v1] = ov5_021D3584(&v2->unk_00, &Unk_020EFA04[v1]);
|
||||
}
|
||||
|
||||
NARC_dtor(v3);
|
||||
return v2;
|
||||
}
|
||||
|
||||
void sub_0206A844(UnkStruct_0206A844 *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 2; v0++) {
|
||||
if (param0->unk_1C8[v0] != NULL) {
|
||||
Sprite_DeleteAndFreeResources(param0->unk_1C8[v0]);
|
||||
}
|
||||
}
|
||||
|
||||
ov5_021D375C(¶m0->unk_00);
|
||||
Heap_Free(param0);
|
||||
}
|
||||
|
||||
void sub_0206A870(UnkStruct_0206A844 *param0)
|
||||
{
|
||||
int v0 = 0;
|
||||
|
||||
for (v0 = 0; v0 < 2; v0++) {
|
||||
if (param0->unk_1C8[v0] != NULL) {
|
||||
Sprite_UpdateAnim(param0->unk_1C8[v0]->sprite, FX32_ONE);
|
||||
}
|
||||
}
|
||||
|
||||
SpriteList_Update(param0->unk_00.unk_00);
|
||||
}
|
||||
|
||||
void sub_0206A8A0(UnkStruct_0206A844 *param0, s16 param1, s16 param2, s16 param3)
|
||||
{
|
||||
ManagedSprite_SetPositionXY(param0->unk_1C8[0], param1, param2);
|
||||
ManagedSprite_SetPositionXY(param0->unk_1C8[1], param1, param3);
|
||||
}
|
||||
|
||||
void sub_0206A8C4(UnkStruct_0206A844 *param0, u16 param1, BOOL param2)
|
||||
{
|
||||
if (param1 >= 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
ManagedSprite_SetDrawFlag(param0->unk_1C8[param1], param2);
|
||||
}
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "struct_defs/mail.h"
|
||||
#include "struct_defs/struct_0206A844.h"
|
||||
#include "struct_defs/struct_02097728.h"
|
||||
#include "struct_defs/struct_02098C44.h"
|
||||
|
||||
|
|
@ -30,6 +29,7 @@
|
|||
#include "save_player.h"
|
||||
#include "savedata.h"
|
||||
#include "screen_fade.h"
|
||||
#include "scroll_prompts.h"
|
||||
#include "sound_playback.h"
|
||||
#include "strbuf.h"
|
||||
#include "string_list.h"
|
||||
|
|
@ -39,7 +39,6 @@
|
|||
#include "system.h"
|
||||
#include "text.h"
|
||||
#include "unk_0203D1B8.h"
|
||||
#include "unk_0206A780.h"
|
||||
#include "unk_02097624.h"
|
||||
|
||||
#include "constdata/const_020F1E88.h"
|
||||
|
|
@ -102,7 +101,7 @@ typedef struct {
|
|||
Window unk_174;
|
||||
Window unk_184;
|
||||
Window unk_194;
|
||||
UnkStruct_0206A844 *unk_1A4;
|
||||
ScrollPrompts *unk_1A4;
|
||||
UnkStruct_02097728 *unk_1A8;
|
||||
Mailbox *mailbox;
|
||||
Bag *bag;
|
||||
|
|
@ -247,7 +246,7 @@ static void sub_02072390(SysTask *param0, void *param1)
|
|||
s32 v1 = ListMenu_ProcessInput(v0->unk_160);
|
||||
|
||||
if (v0->unk_1A4 != NULL) {
|
||||
sub_0206A870(v0->unk_1A4);
|
||||
ScrollPrompts_UpdateAnim(v0->unk_1A4);
|
||||
}
|
||||
|
||||
if (gSystem.pressedKeys & PAD_BUTTON_B) {
|
||||
|
|
@ -667,11 +666,11 @@ static void sub_020729B4(UnkStruct_02072334 *param0)
|
|||
{ 0x3, 0x1, 0x1, 0x9, 0x2, 0xD, 0x283 }
|
||||
};
|
||||
|
||||
param0->unk_1A4 = sub_0206A780(param0->heapID);
|
||||
param0->unk_1A4 = ScrollPrompts_New(param0->heapID);
|
||||
|
||||
sub_0206A8A0(param0->unk_1A4, 200, 10, 138);
|
||||
sub_0206A8C4(param0->unk_1A4, 0, 1);
|
||||
sub_0206A8C4(param0->unk_1A4, 1, 1);
|
||||
ScrollPrompts_SetPosition(param0->unk_1A4, 200, 10, 138);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_1A4, SCROLL_PROMPT_TOP_ARROW, TRUE);
|
||||
ScrollPrompts_SetDrawFlag(param0->unk_1A4, SCROLL_PROMPT_BOTTOM_ARROW, TRUE);
|
||||
Window_AddFromTemplate(param0->unk_170, &(param0->unk_174), &v3[0]);
|
||||
Window_AddFromTemplate(param0->unk_170, &(param0->unk_194), &v3[1]);
|
||||
Window_FillTilemap(¶m0->unk_174, ((15 << 4) | 15));
|
||||
|
|
@ -755,15 +754,15 @@ static void sub_02072C0C(ListMenu *param0, u32 param1, u8 param2)
|
|||
}
|
||||
|
||||
if (v0 == 0) {
|
||||
sub_0206A8C4(v3->unk_1A4, 0, 0);
|
||||
ScrollPrompts_SetDrawFlag(v3->unk_1A4, SCROLL_PROMPT_TOP_ARROW, FALSE);
|
||||
} else {
|
||||
sub_0206A8C4(v3->unk_1A4, 0, 1);
|
||||
ScrollPrompts_SetDrawFlag(v3->unk_1A4, SCROLL_PROMPT_TOP_ARROW, TRUE);
|
||||
}
|
||||
|
||||
if (v0 < (v2 - 7)) {
|
||||
sub_0206A8C4(v3->unk_1A4, 1, 1);
|
||||
ScrollPrompts_SetDrawFlag(v3->unk_1A4, SCROLL_PROMPT_BOTTOM_ARROW, TRUE);
|
||||
} else {
|
||||
sub_0206A8C4(v3->unk_1A4, 1, 0);
|
||||
ScrollPrompts_SetDrawFlag(v3->unk_1A4, SCROLL_PROMPT_BOTTOM_ARROW, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -833,7 +832,7 @@ static void sub_02072DB8(UnkStruct_02072334 *param0)
|
|||
param0->unk_13E = v1;
|
||||
|
||||
if (param0->unk_1A4 != NULL) {
|
||||
sub_0206A844(param0->unk_1A4);
|
||||
ScrollPrompts_Free(param0->unk_1A4);
|
||||
param0->unk_1A4 = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user