Skip to content

Commit 1a9bd39

Browse files
committed
Change drawIcon and drawIconFromItem to not take int arrays
1 parent 42a2dfe commit 1a9bd39

File tree

2 files changed

+34
-104
lines changed

2 files changed

+34
-104
lines changed

ttyd-tools/rel/include/draw.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ void getTextDimensions(const char *text, float scale, float *widthOut, float *he
2020
void drawTextWithWindow(const char *text, int32_t textPosX, int32_t textPosY,
2121
uint32_t textColor, float textScale, uint32_t windowColor, int32_t windowCurve);
2222

23-
int32_t *drawIcon(int32_t position[3], int16_t iconNum, float scale);
24-
int32_t *drawIconFromItem(int32_t position[3], int16_t itemNum, float scale);
23+
void drawIcon(int32_t posX, int32_t posY, int16_t iconNum, float scale);
24+
void drawIconFromItem(int32_t posX, int32_t posY, int16_t itemNum, float scale);
2525

2626
void drawTextMain(const char *text, int32_t x, int32_t y,
2727
uint32_t color, bool alignRight, float scale, float width);

ttyd-tools/rel/source/draw.cpp

Lines changed: 32 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -196,17 +196,17 @@ void drawTextWithWindow(const char *text, int32_t textPosX, int32_t textPosY, ui
196196
drawTextAndInit(text, textPosX, textPosY, alpha, textColor, false, textScale);
197197
}
198198

199-
int32_t *drawIcon(int32_t position[3], int16_t iconNum, float scale)
199+
void drawIcon(int32_t posX, int32_t posY, int16_t iconNum, float scale)
200200
{
201-
constexpr int32_t NumValues = 3;
202-
float NewPosition[NumValues];
201+
float Position[3];
202+
Position[0] = intToFloat(posX);
203+
Position[1] = intToFloat(posY);
204+
Position[2] = 0.f;
203205

204-
intToFloatArray(position, NewPosition, NumValues);
205-
ttyd::icondrv::iconDispGx(NewPosition, 24, iconNum, scale);
206-
return position;
206+
ttyd::icondrv::iconDispGx(Position, 24, iconNum, scale);
207207
}
208208

209-
int32_t *drawIconFromItem(int32_t position[3], int16_t itemNum, float scale)
209+
void drawIconFromItem(int32_t posX, int32_t posY, int16_t itemNum, float scale)
210210
{
211211
#ifdef TTYD_JP
212212
const int16_t DiamondStarIconValue = 407;
@@ -280,7 +280,7 @@ int32_t *drawIconFromItem(int32_t position[3], int16_t itemNum, float scale)
280280
}
281281
}
282282

283-
return drawIcon(position, iconNum, scale);
283+
return drawIcon(posX, posY, iconNum, scale);
284284
}
285285

286286
// Set width to a negative value to not have a width limit
@@ -656,6 +656,7 @@ void drawInventoryIconAndTextColumns()
656656
float TextScale = 0.6f;
657657
float IconScale = 0.6f;
658658
int32_t PosX = -90;
659+
int32_t IconPosX = 217;
659660
int32_t PosY = 125;
660661

661662
const int32_t SetPosXText = PosX + 15;
@@ -664,13 +665,6 @@ void drawInventoryIconAndTextColumns()
664665
const int32_t AdjustPosYIcon = PosY;
665666
const int32_t AdjustPosYText = SetPosYText;
666667

667-
// Set up array to use for displaying icons
668-
int32_t IconPosition[3];
669-
const int32_t IconPositionX = 0;
670-
const int32_t IconPositionY = 1;
671-
IconPosition[2] = 0;
672-
IconPosition[IconPositionX] = 217;
673-
674668
#ifdef TTYD_JP
675669
const int16_t ButtonL = 126;
676670
const int16_t ButtonR = 128;
@@ -715,17 +709,15 @@ void drawInventoryIconAndTextColumns()
715709
// Draw the L button if currently not on the first page
716710
if (tempCurrentPage > 0)
717711
{
718-
IconPosition[IconPositionY] = 155;
719712
int16_t iconNum = ButtonL;
720-
drawIcon(IconPosition, iconNum, L_and_R_buttons_scale);
713+
drawIcon(IconPosX, 155, iconNum, L_and_R_buttons_scale);
721714
}
722715

723716
// Draw the R button if more items are on the next page
724717
if (checkForItemsOnNextPage(tempCurrentPage))
725718
{
726-
IconPosition[IconPositionY] = -175;
727719
int16_t iconNum = ButtonR;
728-
drawIcon(IconPosition, iconNum, L_and_R_buttons_scale);
720+
drawIcon(IconPosX, -175, iconNum, L_and_R_buttons_scale);
729721
}
730722
}
731723

@@ -786,13 +778,6 @@ void drawItemIconsColumn(uint32_t indexStart, uint32_t indexIncrement, uint32_t
786778
uint32_t IndexCounter = newIndexStart;
787779
float tempScale;
788780

789-
// Set up array to use for displaying icons
790-
int32_t IconPosition[3];
791-
const int32_t IconPositionX = 0;
792-
const int32_t IconPositionY = 1;
793-
IconPosition[2] = 0;
794-
IconPosition[IconPositionX] = posX;
795-
796781
for (uint32_t i = newIndexStart; i < (newIndexStart + MaxIconsPerColumn); i++)
797782
{
798783
if (i >= size)
@@ -801,8 +786,6 @@ void drawItemIconsColumn(uint32_t indexStart, uint32_t indexIncrement, uint32_t
801786
return;
802787
}
803788

804-
IconPosition[IconPositionY] = posY;
805-
806789
int16_t CurrentItem = *reinterpret_cast<int16_t *>(address + (IndexCounter * 0x2));
807790
if (CurrentItem == 0)
808791
{
@@ -825,7 +808,7 @@ void drawItemIconsColumn(uint32_t indexStart, uint32_t indexIncrement, uint32_t
825808
tempScale = scale;
826809
}
827810

828-
drawIconFromItem(IconPosition, CurrentItem, tempScale);
811+
drawIconFromItem(posX, posY, CurrentItem, tempScale);
829812
posY -= 30;
830813
IndexCounter += indexIncrement;
831814
}
@@ -893,13 +876,8 @@ void drawMarioSpecialMovesOptions()
893876
PosX += 55;
894877
PosY = NewPosY;
895878

896-
// Set up array to use for displaying icons
897-
int32_t IconPosition[3];
898-
const int32_t IconPositionX = 0;
899-
const int32_t IconPositionY = 1;
900-
IconPosition[2] = 0;
901-
IconPosition[IconPositionX] = PosX - 15;
902-
IconPosition[IconPositionY] = PosY - 18;
879+
int32_t IconPosX = PosX - 15;
880+
int32_t IconPosY = PosY - 18;
903881

904882
// Draw the icons and main text
905883
uint32_t tempSecondaryMenuOption = MenuVar.SecondaryMenuOption;
@@ -920,8 +898,8 @@ void drawMarioSpecialMovesOptions()
920898
SpecialMoveIcon = (ttyd::item_data::Item::DiamondStar + i) - 1;
921899
}
922900

923-
drawIconFromItem(IconPosition, SpecialMoveIcon, Scale);
924-
IconPosition[IconPositionY] -= 30;
901+
drawIconFromItem(IconPosX, IconPosY, SpecialMoveIcon, Scale);
902+
IconPosY -= 30;
925903
}
926904

927905
// Draw the help text
@@ -1051,15 +1029,8 @@ void drawMarioStats()
10511029
int32_t TextPosY = 175;
10521030
int32_t ValuesPosX = TextPosX + 105;
10531031
int32_t IconPosX = TextPosX - 15;
1054-
int32_t IconPosY = TextPosY - 20;
1055-
1056-
// Set up array to use for displaying icons
1057-
int32_t IconPosition[3];
1058-
const int32_t IconPositionX = 0;
1059-
const int32_t IconPositionY = 1;
1060-
IconPosition[2] = 0;
1061-
IconPosition[IconPositionX] = IconPosX;
1062-
IconPosition[IconPositionY] = IconPosY;
1032+
const int32_t IconPosYStart = TextPosY - 20;
1033+
int32_t IconPosY = IconPosYStart;
10631034

10641035
uint32_t tempStatsMarioOptionsLinesSize = StatsMarioOptionsLinesSize;
10651036
uint32_t TotalRowsPerPage = 1 + ((tempStatsMarioOptionsLinesSize - 1) / 2); // Round up
@@ -1108,10 +1079,10 @@ void drawMarioStats()
11081079
IconPosYIncrement = 0;
11091080
}
11101081

1111-
drawIcon(IconPosition, StatsMarioIcons[i], IconScale);
1082+
drawIcon(IconPosX, IconPosY, StatsMarioIcons[i], IconScale);
11121083

11131084
PosY -= 30;
1114-
IconPosition[IconPositionY] -= 30 + IconPosYIncrement;
1085+
IconPosY -= 30 + IconPosYIncrement;
11151086
}
11161087

11171088
if (ExitLoop)
@@ -1121,16 +1092,16 @@ void drawMarioStats()
11211092

11221093
PosX += 190;
11231094
ValuesPosX += 230;
1124-
IconPosition[IconPositionX] += 190;
1095+
IconPosX += 190;
11251096
PosY = TextPosY;
1126-
IconPosition[IconPositionY] = IconPosY;
1097+
IconPosY = IconPosYStart;
11271098
}
11281099

11291100
// Draw the special moves
11301101
float SpecialMovesScale = 0.37f;
11311102
int16_t SpecialMoveIcon;
1132-
IconPosition[IconPositionX] = 133;
1133-
IconPosition[IconPositionY] = 101;
1103+
IconPosX = 133;
1104+
IconPosY = 101;
11341105

11351106
uint16_t SpecialMovesBits = getSpecialMoveBits();
11361107
for (uint32_t i = 0; i < 8; i++)
@@ -1147,10 +1118,10 @@ void drawMarioStats()
11471118
SpecialMoveIcon = (ttyd::item_data::Item::DiamondStar + i) - 1;
11481119
}
11491120

1150-
drawIconFromItem(IconPosition, SpecialMoveIcon, SpecialMovesScale);
1121+
drawIconFromItem(IconPosX, IconPosY, SpecialMoveIcon, SpecialMovesScale);
11511122
}
11521123

1153-
IconPosition[IconPositionX] += 13;
1124+
IconPosX += 13;
11541125
}
11551126

11561127
// Restart the text drawing sequence
@@ -1550,16 +1521,7 @@ void drawBattlesActorsHeldItem()
15501521
{
15511522
PosX += 10;
15521523
PosY -= 45;
1553-
1554-
// Set up array to use for displaying icons
1555-
int32_t IconPosition[3];
1556-
const int32_t IconPositionX = 0;
1557-
const int32_t IconPositionY = 1;
1558-
IconPosition[IconPositionX] = PosX;
1559-
IconPosition[IconPositionY] = PosY;
1560-
IconPosition[2] = 0;
1561-
1562-
drawIconFromItem(IconPosition, tempitem, Scale);
1524+
drawIconFromItem(PosX, PosY, tempitem, Scale);
15631525

15641526
// Draw the text for the item
15651527
PosX += 17;
@@ -2647,14 +2609,6 @@ void drawBattlesStatusesList()
26472609
int32_t IconPosX = TextPosX - 15;
26482610
int32_t IconPosY = TextPosY - 20;
26492611

2650-
// Set up array to use for displaying icons
2651-
int32_t IconPosition[3];
2652-
const int32_t IconPositionX = 0;
2653-
const int32_t IconPositionY = 1;
2654-
IconPosition[2] = 0;
2655-
IconPosition[IconPositionX] = IconPosX;
2656-
IconPosition[IconPositionY] = IconPosY;
2657-
26582612
// Get the initial address offset
26592613
uint32_t DisplayValueCounter = 0;
26602614

@@ -2701,9 +2655,9 @@ void drawBattlesStatusesList()
27012655
}
27022656

27032657
// Draw the icon
2704-
drawIcon(IconPosition, BattlesStatusesIcons[i], IconScale);
2658+
drawIcon(IconPosX, IconPosY, BattlesStatusesIcons[i], IconScale);
27052659

2706-
IconPosition[IconPositionY] -= 30;
2660+
IconPosY -= 30;
27072661
DrawWindowCounter++;
27082662
}
27092663

@@ -3180,13 +3134,6 @@ void drawAdjustableValue(bool changingItem, uint32_t currentMenu)
31803134
y -= 50;
31813135

31823136
// Draw the icon for the current item
3183-
// Set up array to use for displaying icons
3184-
int32_t IconPosition[3];
3185-
const int32_t IconPositionX = 0;
3186-
const int32_t IconPositionY = 1;
3187-
IconPosition[IconPositionX] = IconPosX;
3188-
IconPosition[IconPositionY] = y;
3189-
IconPosition[2] = 0;
31903137

31913138
float IconScale = 0.6f;
31923139

@@ -3204,7 +3151,7 @@ void drawAdjustableValue(bool changingItem, uint32_t currentMenu)
32043151

32053152
// Draw the icon for the item
32063153
int16_t CurrentItem = static_cast<int16_t>(tempMenuSecondaryValue);
3207-
drawIconFromItem(IconPosition, CurrentItem, IconScale);
3154+
drawIconFromItem(IconPosX, y, CurrentItem, IconScale);
32083155

32093156
// Draw the text for the item
32103157
color = 0xFFFFFFFF;
@@ -3657,15 +3604,8 @@ void drawAddByIconMain(uint32_t currentMenu)
36573604

36583605
drawWindow(Color, PosX, PosY, Width, Height, Curve);
36593606

3660-
// Set up array to use for displaying icons
3661-
int32_t IconPosition[3];
3662-
const int32_t IconPositionX = 0;
3663-
const int32_t IconPositionY = 1;
3664-
IconPosition[2] = 0;
3665-
36663607
int32_t tempIconPositionX = -225;
36673608
int32_t tempIconPositionY = 70;
3668-
IconPosition[IconPositionY] = tempIconPositionY;
36693609

36703610
// Draw all of the icons for the current menu
36713611
float Scale = 0.6f;
@@ -3689,8 +3629,7 @@ void drawAddByIconMain(uint32_t currentMenu)
36893629
Scale = 0.6f;
36903630
}
36913631

3692-
IconPosition[IconPositionX] = tempIconPositionX;
3693-
drawIconFromItem(IconPosition, static_cast<int16_t>(i), Scale);
3632+
drawIconFromItem(tempIconPositionX, tempIconPositionY, static_cast<int16_t>(i), Scale);
36943633

36953634
tempIconPositionX += IconSpaceOccupied;
36963635

@@ -3699,7 +3638,6 @@ void drawAddByIconMain(uint32_t currentMenu)
36993638
Counter = 0;
37003639
tempIconPositionX = -225;
37013640
tempIconPositionY -= IconSpaceOccupied;
3702-
IconPosition[IconPositionY] = tempIconPositionY;
37033641
}
37043642
else
37053643
{
@@ -4119,16 +4057,8 @@ void drawCheatsForcedDropItem()
41194057
float Scale = 0.6f;
41204058

41214059
// Draw the current item icon
4122-
// Set up array to use for displaying icons
4123-
int32_t IconPosition[3];
4124-
const int32_t IconPositionX = 0;
4125-
const int32_t IconPositionY = 1;
4126-
IconPosition[IconPositionX] = PosX;
4127-
IconPosition[IconPositionY] = PosY;
4128-
IconPosition[2] = 0;
4129-
41304060
int16_t tempForcedNPCItemDrop = MenuVar.ForcedNPCItemDrop;
4131-
drawIconFromItem(IconPosition, tempForcedNPCItemDrop, Scale);
4061+
drawIconFromItem(PosX, PosY, tempForcedNPCItemDrop, Scale);
41324062

41334063
// Draw the text for showing what the current item is
41344064
const char *CurrentLine = "Current Item";

0 commit comments

Comments
 (0)