fixed lots of stuff

This commit is contained in:
jiangzhengwenjz
2019-06-11 05:20:42 +08:00
parent 19f89762cf
commit 20a09555ea
12 changed files with 167 additions and 146 deletions
+1 -1
View File
@@ -41,7 +41,7 @@ extern u8 gIconDescriptionBoxIsOpen;
void ResetFameChecker(void);
void FullyUnlockFameChecker(void);
void UseFameChecker(void (*)());
void UseFameChecker(MainCallback savedCallback);
void SetFlavorTextFlagFromSpecialVars(void);
void UpdatePickStateFromSpecialVar8005(void);
+3 -1
View File
@@ -46,7 +46,7 @@ void FieldObjectClearAnim(struct MapObject *);
void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
void SpawnFieldObjectsInView(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16, s16, u8);
u8 AddPseudoEventObject(u16, SpriteCallback, s16, s16, u8);
u8 show_sprite(u8, u8, u8);
u8 SpawnSpecialFieldObjectParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
@@ -92,5 +92,7 @@ void npc_paltag_set_load(u8 mode);
// Exported data declarations
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
extern const struct SpritePalette gUnknown_83A5348;
extern const struct SpriteTemplate * const gUnknown_83A0010[];
#endif //GUARD_FIELD_MAP_OBJ_H
+1
View File
@@ -12,6 +12,7 @@
#define VIRTUAL_MAP_SIZE 0x2800
extern struct BackupMapData VMap;
extern const struct MapData Route1_Layout;
u32 MapGridGetMetatileIdAt(int, int);
u32 MapGridGetMetatileBehaviorAt(int, int);
+7
View File
@@ -160,6 +160,7 @@ extern const u32 gTMCase_TMSpriteGfx[];
extern const u32 gUnknown_8E84F20[];
extern const u32 gUnknown_8E85068[];
extern const u8 gUnknown_8E99118[];
extern const u16 gTMCaseMainWindowPalette[];
// egg_hatch
extern const u32 gBattleTextboxTiles[];
@@ -168,4 +169,10 @@ extern const u32 gBattleTextboxPalette[];
extern const u32 gTradeGba2_Pal[];
extern const u32 gTradeGba_Gfx[];
// teachy_tv
extern const u8 gUnknown_8E86240[];
extern const u8 gUnknown_8E86BE8[];
extern const u8 gUnknown_8E86D6C[];
extern const u8 gUnknown_8E86F98[];
#endif //GUARD_GRAPHICS_H
+2 -2
View File
@@ -9,8 +9,8 @@
struct ListMenuItem
{
const u8 *unk_00;
s32 unk_04;
const u8 *label;
s32 index;
};
struct ListMenu;
-2
View File
@@ -3,8 +3,6 @@
#include "global.h"
#include "global.h"
typedef void (*MainCallback)(void);
typedef void (*IntrCallback)(void);
typedef void (*IntrFunc)(void);
+2
View File
@@ -232,6 +232,8 @@ struct OamMatrix
s16 d;
};
typedef void (*SpriteCallback)(struct Sprite *);
extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
+22 -1
View File
@@ -113,6 +113,27 @@ extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[];
extern const u8 gText_TurnedOverItemsWorthYen[];
extern const u8 gPokeDudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[];
extern const u16 gTMCaseMainWindowPalette[];
// teachy_tv
extern const u8 gUnknown_841B7A4[];
extern const u8 gUnknown_841B7BC[];
extern const u8 gUnknown_841B7D6[];
extern const u8 gUnknown_841B7EE[];
extern const u8 gUnknown_841B807[];
extern const u8 gUnknown_841B81B[];
extern const u8 gUnknown_841B836[];
extern const u8 gUnknown_841B83D[];
extern const u8 gUnknown_841B8BF[];
extern const u8 gUnknown_841BB40[];
extern const u8 gUnknown_841BE76[];
extern const u8 gUnknown_841C23B[];
extern const u8 gUnknown_841C459[];
extern const u8 gUnknown_841C82A[];
extern const u8 gUnknown_841BA41[];
extern const u8 gUnknown_841BD10[];
extern const u8 gUnknown_841C0AF[];
extern const u8 gUnknown_841C384[];
extern const u8 gUnknown_841C7B4[];
extern const u8 gUnknown_841C994[];
#endif //GUARD_STRINGS_H
+8 -8
View File
@@ -1341,14 +1341,14 @@ static void FC_DoMoveCursor(s32 itemIndex, bool8 onInit)
u16 who;
ListMenuGetScrollAndRow(sFameCheckerData->listMenuTaskId, &listY, &cursorY);
who = listY + cursorY;
AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].unk_00);
AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * cursorY + 4, 0, 0, &sTextColor_Green, 0, sListMenuItems[itemIndex].label);
if (!onInit)
{
if (listY < sFameCheckerData->listMenuTopIdx2)
sFameCheckerData->listMenuDrawnSelIdx++;
else if (listY > sFameCheckerData->listMenuTopIdx2 && who != sFameCheckerData->numUnlockedPersons - 1)
sFameCheckerData->listMenuDrawnSelIdx--;
AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].unk_00);
AddTextPrinterParameterized4(FCWINDOWID_LIST, 2, 8, 14 * sFameCheckerData->listMenuDrawnSelIdx + 4, 0, 0, &sTextColor_DkGrey, 0, sListMenuItems[sFameCheckerData->listMenuCurIdx].label);
}
sFameCheckerData->listMenuCurIdx = itemIndex;
@@ -1368,20 +1368,20 @@ static u8 FC_PopulateListMenu(void)
{
if (sTrainerIdxs[fameCheckerIdx] < FC_NONTRAINER_START)
{
sListMenuItems[nitems].unk_00 = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName;
sListMenuItems[nitems].unk_04 = nitems;
sListMenuItems[nitems].label = gTrainers[sTrainerIdxs[fameCheckerIdx]].trainerName;
sListMenuItems[nitems].index = nitems;
}
else
{
sListMenuItems[nitems].unk_00 = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START];
sListMenuItems[nitems].unk_04 = nitems;
sListMenuItems[nitems].label = sNonTrainerNamePointers[sTrainerIdxs[fameCheckerIdx] - FC_NONTRAINER_START];
sListMenuItems[nitems].index = nitems;
}
sFameCheckerData->unlockedPersons[nitems] = fameCheckerIdx;
nitems++;
}
}
sListMenuItems[nitems].unk_00 = gFameCheckerText_Cancel;
sListMenuItems[nitems].unk_04 = nitems;
sListMenuItems[nitems].label = gFameCheckerText_Cancel;
sListMenuItems[nitems].index = nitems;
sFameCheckerData->unlockedPersons[nitems] = 0xFF;
nitems++;
gFameChecker_ListMenuTemplate.totalItems = nitems;
+1 -1
View File
@@ -703,7 +703,7 @@ u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu)
width = 0;
for (i = 0; i < listMenuTemplate.totalItems; i++)
{
u32 curWidth = GetStringWidth(2, listMenuTemplate.items[i].unk_00, listMenuTemplate.lettersSpacing);
u32 curWidth = GetStringWidth(2, listMenuTemplate.items[i].label, listMenuTemplate.lettersSpacing);
if (curWidth > width)
width = curWidth;
}
+116 -126
View File
@@ -1,4 +1,3 @@
#include "main.h"
#include "task.h"
#include "menu.h"
#include "palette.h"
@@ -31,6 +30,9 @@
#include "help_system.h"
#include "overworld.h"
#include "unk_8159F40.h"
#include "graphics.h"
#include "fieldmap.h"
#include "strings.h"
struct TeachyTvCtrlBlk
{
@@ -57,14 +59,6 @@ struct TeachyTvBuf
EWRAM_DATA struct TeachyTvCtrlBlk gTeachyTV_StaticResources = {0};
EWRAM_DATA struct TeachyTvBuf * gUnknown_203F450 = NULL;
extern const struct SpritePalette gUnknown_83A5348;
extern const struct SpriteTemplate * const gUnknown_83A0010[];
extern const struct MapData Route1_Layout;
extern const u8 gUnknown_841B7A4[], gUnknown_841B7BC[], gUnknown_841B7D6[], gUnknown_841B7EE[], gUnknown_841B807[], gUnknown_841B81B[], gUnknown_841B836[], gUnknown_841B83D[], gUnknown_841B8BF[], gUnknown_841BB40[], gUnknown_841BE76[], gUnknown_841C23B[], gUnknown_841C459[], gUnknown_841C82A[], gUnknown_841BA41[], gUnknown_841BD10[], gUnknown_841C0AF[], gUnknown_841C384[], gUnknown_841C7B4[], gUnknown_841C994[];
extern const u8 gUnknown_8E86240[];
extern const u8 gUnknown_8E86BE8[];
extern const u8 gUnknown_8E86D6C[];
extern const u8 gUnknown_8E86F98[];
void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId);
void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId);
@@ -189,57 +183,57 @@ const struct WindowTemplate gTeachyTvWindowTemplateArray[] =
const struct ListMenuItem gTeachyTvListMenuItemArray[] =
{
{
.unk_00 = gUnknown_841B7A4,
.unk_04 = 0,
.label = gUnknown_841B7A4,
.index = 0,
},
{
.unk_00 = gUnknown_841B7BC,
.unk_04 = 1,
.label = gUnknown_841B7BC,
.index = 1,
},
{
.unk_00 = gUnknown_841B7D6,
.unk_04 = 2,
.label = gUnknown_841B7D6,
.index = 2,
},
{
.unk_00 = gUnknown_841B7EE,
.unk_04 = 3,
.label = gUnknown_841B7EE,
.index = 3,
},
{
.unk_00 = gUnknown_841B807,
.unk_04 = 4,
.label = gUnknown_841B807,
.index = 4,
},
{
.unk_00 = gUnknown_841B81B,
.unk_04 = 5,
.label = gUnknown_841B81B,
.index = 5,
},
{
.unk_00 = gUnknown_841B836,
.unk_04 = -2,
.label = gUnknown_841B836,
.index = -2,
},
};
const struct ListMenuItem gTeachyTvListMenuItemArray2[] =
{
{
.unk_00 = gUnknown_841B7A4,
.unk_04 = 0,
.label = gUnknown_841B7A4,
.index = 0,
},
{
.unk_00 = gUnknown_841B7BC,
.unk_04 = 1,
.label = gUnknown_841B7BC,
.index = 1,
},
{
.unk_00 = gUnknown_841B7D6,
.unk_04 = 2,
.label = gUnknown_841B7D6,
.index = 2,
},
{
.unk_00 = gUnknown_841B7EE,
.unk_04 = 3,
.label = gUnknown_841B7EE,
.index = 3,
},
{
.unk_00 = gUnknown_841B836,
.unk_04 = -2,
.label = gUnknown_841B836,
.index = -2,
},
};
@@ -428,86 +422,6 @@ void (* const * const gTeachyTvFuncClusterArray[])(u8) =
gTeachyTvFuncCluster5,
};
const u8 * const gTeachyTvTextArray1[] =
{
gUnknown_841B8BF,
gUnknown_841BB40,
gUnknown_841BE76,
gUnknown_841C23B,
gUnknown_841C459,
gUnknown_841C82A,
};
const u8 * const gTeachyTvTextArray2[] =
{
gUnknown_841BA41,
gUnknown_841BD10,
gUnknown_841C0AF,
gUnknown_841C384,
gUnknown_841C7B4,
gUnknown_841C994,
};
const u16 gUnknown_8479590[] =
{
0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,
0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8,
};
const struct Subsprite gTeachyTvSubspriteArray[] =
{
{
.x = -0x8,
.y = -0x8,
.shape = 0x1,
.size = 0x0,
.tileOffset = 0x0,
.priority = 0x3,
},
{
.x = -0x8,
.y = 0x0,
.shape = 0x1,
.size = 0x0,
.tileOffset = 0x2,
.priority = 0x2,
},
};
const struct SubspriteTable gTeachyTvSubspriteTableArray[] =
{
{
.subspriteCount = 0,
.subsprites = NULL,
},
{
.subspriteCount = 2,
.subsprites = gTeachyTvSubspriteArray,
},
};
const u8 gTeachyTvGrassAnimArray[] =
{
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 0, 0,
};
void TeachyTvCallback(void)
{
RunTasks();
@@ -754,7 +668,7 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
{
s16 *data = gTasks[taskId].data;
int v1 = data[1];
struct Sprite *v3 = &gSprites[v1];
struct Sprite *objAddr = &gSprites[v1];
int op;
ClearWindowTilemap(1);
@@ -776,7 +690,7 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
data[4] = 0;
data[5] = 0;
TeachyTvGrassAnimationMain(taskId, v3->pos2.x, v3->pos2.y, 0, 1);
TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 1);
}
void TeachyTvInitTextPrinter(const char *text)
@@ -811,7 +725,7 @@ void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
else
{
sub_8055DC4();
SetMainCallback2((void (*)())gTeachyTV_StaticResources.callback);
SetMainCallback2(gTeachyTV_StaticResources.callback);
}
TeachyTvFree();
DestroyTask(taskId);
@@ -940,7 +854,15 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId)
{
s16 *data = gTasks[taskId].data;
const u8 * const* texts = gTeachyTvTextArray1;
const u8 * const *texts = (const u8 *const [])
{
gUnknown_841B8BF,
gUnknown_841BB40,
gUnknown_841BE76,
gUnknown_841C23B,
gUnknown_841C459,
gUnknown_841C82A,
};
TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
++data[3];
}
@@ -948,11 +870,79 @@ void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId)
void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId)
{
s16 *data = gTasks[taskId].data;
const u8 * const* texts = gTeachyTvTextArray2;
const u8 * const *texts = (const u8 *const [])
{
gUnknown_841BA41,
gUnknown_841BD10,
gUnknown_841C0AF,
gUnknown_841C384,
gUnknown_841C7B4,
gUnknown_841C994,
};
TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
++data[3];
}
const u16 gUnknown_8479590[] =
{
0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,
0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8,
};
const struct Subsprite gTeachyTvSubspriteArray[] =
{
{
.x = -0x8,
.y = -0x8,
.shape = 0x1,
.size = 0x0,
.tileOffset = 0x0,
.priority = 0x3,
},
{
.x = -0x8,
.y = 0x0,
.shape = 0x1,
.size = 0x0,
.tileOffset = 0x2,
.priority = 0x2,
},
};
const struct SubspriteTable gTeachyTvSubspriteTableArray[] =
{
{
.subspriteCount = 0,
.subsprites = NULL,
},
{
.subspriteCount = 2,
.subsprites = gTeachyTvSubspriteArray,
},
};
const u8 gTeachyTvGrassAnimArray[] =
{
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 0, 0,
};
void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId)
{
s16 *data = (u16 *)gTasks[taskId].data;
@@ -1027,25 +1017,25 @@ void TeachyTvClusFuncDudeTurnLeft(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite *v3 = &gSprites[data[1]];
StartSpriteAnim(v3, 6);
struct Sprite *objAddr = &gSprites[data[1]];
StartSpriteAnim(objAddr, 6);
++data[3];
data[4] = 0;
data[5] = 0;
TeachyTvGrassAnimationMain(taskId, v3->pos2.x, v3->pos2.y, 0, 0);
TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 0);
}
void TeachyTvClusFuncDudeMoveLeft(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite *v2 = &gSprites[data[1]];
struct Sprite *objAddr = &gSprites[data[1]];
if (!(v2->pos2.x & 0xF))
TeachyTvGrassAnimationMain(taskId, v2->pos2.x - 8, v2->pos2.y, 0, 0);
if (v2->pos2.x == 8)
if (!(objAddr->pos2.x & 0xF))
TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x - 8, objAddr->pos2.y, 0, 0);
if (objAddr->pos2.x == 8)
++data[3];
else
--v2->pos2.x;
--objAddr->pos2.x;
}
void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId)
+4 -4
View File
@@ -496,11 +496,11 @@ static void InitTMCaseListMenuItems(void)
for (i = 0; i < sTMCaseDynamicResources->numTMs; i++)
{
GetTMNumberAndMoveString(sListMenuStringsBuffer[i], pocket->itemSlots[i].itemId);
sListMenuItemsBuffer[i].unk_00 = sListMenuStringsBuffer[i];
sListMenuItemsBuffer[i].unk_04 = i;
sListMenuItemsBuffer[i].label = sListMenuStringsBuffer[i];
sListMenuItemsBuffer[i].index = i;
}
sListMenuItemsBuffer[i].unk_00 = gText_Close;
sListMenuItemsBuffer[i].unk_04 = -2;
sListMenuItemsBuffer[i].label = gText_Close;
sListMenuItemsBuffer[i].index = -2;
gMultiuseListMenuTemplate.items = sListMenuItemsBuffer;
gMultiuseListMenuTemplate.totalItems = sTMCaseDynamicResources->numTMs + 1;
gMultiuseListMenuTemplate.windowId = 0;