@@ -196,17 +196,17 @@ void drawTextWithWindow(const char *text, int32_t textPosX, int32_t textPosY, ui
196
196
drawTextAndInit (text, textPosX, textPosY, alpha, textColor, false , textScale);
197
197
}
198
198
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)
200
200
{
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 ;
203
205
204
- intToFloatArray (position, NewPosition, NumValues);
205
- ttyd::icondrv::iconDispGx (NewPosition, 24 , iconNum, scale);
206
- return position;
206
+ ttyd::icondrv::iconDispGx (Position, 24 , iconNum, scale);
207
207
}
208
208
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)
210
210
{
211
211
#ifdef TTYD_JP
212
212
const int16_t DiamondStarIconValue = 407 ;
@@ -280,7 +280,7 @@ int32_t *drawIconFromItem(int32_t position[3], int16_t itemNum, float scale)
280
280
}
281
281
}
282
282
283
- return drawIcon (position , iconNum, scale);
283
+ return drawIcon (posX, posY , iconNum, scale);
284
284
}
285
285
286
286
// Set width to a negative value to not have a width limit
@@ -656,6 +656,7 @@ void drawInventoryIconAndTextColumns()
656
656
float TextScale = 0 .6f ;
657
657
float IconScale = 0 .6f ;
658
658
int32_t PosX = -90 ;
659
+ int32_t IconPosX = 217 ;
659
660
int32_t PosY = 125 ;
660
661
661
662
const int32_t SetPosXText = PosX + 15 ;
@@ -664,13 +665,6 @@ void drawInventoryIconAndTextColumns()
664
665
const int32_t AdjustPosYIcon = PosY;
665
666
const int32_t AdjustPosYText = SetPosYText;
666
667
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
-
674
668
#ifdef TTYD_JP
675
669
const int16_t ButtonL = 126 ;
676
670
const int16_t ButtonR = 128 ;
@@ -715,17 +709,15 @@ void drawInventoryIconAndTextColumns()
715
709
// Draw the L button if currently not on the first page
716
710
if (tempCurrentPage > 0 )
717
711
{
718
- IconPosition[IconPositionY] = 155 ;
719
712
int16_t iconNum = ButtonL;
720
- drawIcon (IconPosition , iconNum, L_and_R_buttons_scale);
713
+ drawIcon (IconPosX, 155 , iconNum, L_and_R_buttons_scale);
721
714
}
722
715
723
716
// Draw the R button if more items are on the next page
724
717
if (checkForItemsOnNextPage (tempCurrentPage))
725
718
{
726
- IconPosition[IconPositionY] = -175 ;
727
719
int16_t iconNum = ButtonR;
728
- drawIcon (IconPosition , iconNum, L_and_R_buttons_scale);
720
+ drawIcon (IconPosX, - 175 , iconNum, L_and_R_buttons_scale);
729
721
}
730
722
}
731
723
@@ -786,13 +778,6 @@ void drawItemIconsColumn(uint32_t indexStart, uint32_t indexIncrement, uint32_t
786
778
uint32_t IndexCounter = newIndexStart;
787
779
float tempScale;
788
780
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
-
796
781
for (uint32_t i = newIndexStart; i < (newIndexStart + MaxIconsPerColumn); i++)
797
782
{
798
783
if (i >= size)
@@ -801,8 +786,6 @@ void drawItemIconsColumn(uint32_t indexStart, uint32_t indexIncrement, uint32_t
801
786
return ;
802
787
}
803
788
804
- IconPosition[IconPositionY] = posY;
805
-
806
789
int16_t CurrentItem = *reinterpret_cast <int16_t *>(address + (IndexCounter * 0x2 ));
807
790
if (CurrentItem == 0 )
808
791
{
@@ -825,7 +808,7 @@ void drawItemIconsColumn(uint32_t indexStart, uint32_t indexIncrement, uint32_t
825
808
tempScale = scale;
826
809
}
827
810
828
- drawIconFromItem (IconPosition , CurrentItem, tempScale);
811
+ drawIconFromItem (posX, posY , CurrentItem, tempScale);
829
812
posY -= 30 ;
830
813
IndexCounter += indexIncrement;
831
814
}
@@ -893,13 +876,8 @@ void drawMarioSpecialMovesOptions()
893
876
PosX += 55 ;
894
877
PosY = NewPosY;
895
878
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 ;
903
881
904
882
// Draw the icons and main text
905
883
uint32_t tempSecondaryMenuOption = MenuVar.SecondaryMenuOption ;
@@ -920,8 +898,8 @@ void drawMarioSpecialMovesOptions()
920
898
SpecialMoveIcon = (ttyd::item_data::Item::DiamondStar + i) - 1 ;
921
899
}
922
900
923
- drawIconFromItem (IconPosition , SpecialMoveIcon, Scale);
924
- IconPosition[IconPositionY] -= 30 ;
901
+ drawIconFromItem (IconPosX, IconPosY , SpecialMoveIcon, Scale);
902
+ IconPosY -= 30 ;
925
903
}
926
904
927
905
// Draw the help text
@@ -1051,15 +1029,8 @@ void drawMarioStats()
1051
1029
int32_t TextPosY = 175 ;
1052
1030
int32_t ValuesPosX = TextPosX + 105 ;
1053
1031
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;
1063
1034
1064
1035
uint32_t tempStatsMarioOptionsLinesSize = StatsMarioOptionsLinesSize;
1065
1036
uint32_t TotalRowsPerPage = 1 + ((tempStatsMarioOptionsLinesSize - 1 ) / 2 ); // Round up
@@ -1108,10 +1079,10 @@ void drawMarioStats()
1108
1079
IconPosYIncrement = 0 ;
1109
1080
}
1110
1081
1111
- drawIcon (IconPosition , StatsMarioIcons[i], IconScale);
1082
+ drawIcon (IconPosX, IconPosY , StatsMarioIcons[i], IconScale);
1112
1083
1113
1084
PosY -= 30 ;
1114
- IconPosition[IconPositionY] -= 30 + IconPosYIncrement;
1085
+ IconPosY -= 30 + IconPosYIncrement;
1115
1086
}
1116
1087
1117
1088
if (ExitLoop)
@@ -1121,16 +1092,16 @@ void drawMarioStats()
1121
1092
1122
1093
PosX += 190 ;
1123
1094
ValuesPosX += 230 ;
1124
- IconPosition[IconPositionX] += 190 ;
1095
+ IconPosX += 190 ;
1125
1096
PosY = TextPosY;
1126
- IconPosition[IconPositionY] = IconPosY ;
1097
+ IconPosY = IconPosYStart ;
1127
1098
}
1128
1099
1129
1100
// Draw the special moves
1130
1101
float SpecialMovesScale = 0 .37f ;
1131
1102
int16_t SpecialMoveIcon;
1132
- IconPosition[IconPositionX] = 133 ;
1133
- IconPosition[IconPositionY] = 101 ;
1103
+ IconPosX = 133 ;
1104
+ IconPosY = 101 ;
1134
1105
1135
1106
uint16_t SpecialMovesBits = getSpecialMoveBits ();
1136
1107
for (uint32_t i = 0 ; i < 8 ; i++)
@@ -1147,10 +1118,10 @@ void drawMarioStats()
1147
1118
SpecialMoveIcon = (ttyd::item_data::Item::DiamondStar + i) - 1 ;
1148
1119
}
1149
1120
1150
- drawIconFromItem (IconPosition , SpecialMoveIcon, SpecialMovesScale);
1121
+ drawIconFromItem (IconPosX, IconPosY , SpecialMoveIcon, SpecialMovesScale);
1151
1122
}
1152
1123
1153
- IconPosition[IconPositionX] += 13 ;
1124
+ IconPosX += 13 ;
1154
1125
}
1155
1126
1156
1127
// Restart the text drawing sequence
@@ -1550,16 +1521,7 @@ void drawBattlesActorsHeldItem()
1550
1521
{
1551
1522
PosX += 10 ;
1552
1523
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);
1563
1525
1564
1526
// Draw the text for the item
1565
1527
PosX += 17 ;
@@ -2647,14 +2609,6 @@ void drawBattlesStatusesList()
2647
2609
int32_t IconPosX = TextPosX - 15 ;
2648
2610
int32_t IconPosY = TextPosY - 20 ;
2649
2611
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
-
2658
2612
// Get the initial address offset
2659
2613
uint32_t DisplayValueCounter = 0 ;
2660
2614
@@ -2701,9 +2655,9 @@ void drawBattlesStatusesList()
2701
2655
}
2702
2656
2703
2657
// Draw the icon
2704
- drawIcon (IconPosition , BattlesStatusesIcons[i], IconScale);
2658
+ drawIcon (IconPosX, IconPosY , BattlesStatusesIcons[i], IconScale);
2705
2659
2706
- IconPosition[IconPositionY] -= 30 ;
2660
+ IconPosY -= 30 ;
2707
2661
DrawWindowCounter++;
2708
2662
}
2709
2663
@@ -3180,13 +3134,6 @@ void drawAdjustableValue(bool changingItem, uint32_t currentMenu)
3180
3134
y -= 50 ;
3181
3135
3182
3136
// 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 ;
3190
3137
3191
3138
float IconScale = 0 .6f ;
3192
3139
@@ -3204,7 +3151,7 @@ void drawAdjustableValue(bool changingItem, uint32_t currentMenu)
3204
3151
3205
3152
// Draw the icon for the item
3206
3153
int16_t CurrentItem = static_cast <int16_t >(tempMenuSecondaryValue);
3207
- drawIconFromItem (IconPosition , CurrentItem, IconScale);
3154
+ drawIconFromItem (IconPosX, y , CurrentItem, IconScale);
3208
3155
3209
3156
// Draw the text for the item
3210
3157
color = 0xFFFFFFFF ;
@@ -3657,15 +3604,8 @@ void drawAddByIconMain(uint32_t currentMenu)
3657
3604
3658
3605
drawWindow (Color, PosX, PosY, Width, Height, Curve);
3659
3606
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
-
3666
3607
int32_t tempIconPositionX = -225 ;
3667
3608
int32_t tempIconPositionY = 70 ;
3668
- IconPosition[IconPositionY] = tempIconPositionY;
3669
3609
3670
3610
// Draw all of the icons for the current menu
3671
3611
float Scale = 0 .6f ;
@@ -3689,8 +3629,7 @@ void drawAddByIconMain(uint32_t currentMenu)
3689
3629
Scale = 0 .6f ;
3690
3630
}
3691
3631
3692
- IconPosition[IconPositionX] = tempIconPositionX;
3693
- drawIconFromItem (IconPosition, static_cast <int16_t >(i), Scale);
3632
+ drawIconFromItem (tempIconPositionX, tempIconPositionY, static_cast <int16_t >(i), Scale);
3694
3633
3695
3634
tempIconPositionX += IconSpaceOccupied;
3696
3635
@@ -3699,7 +3638,6 @@ void drawAddByIconMain(uint32_t currentMenu)
3699
3638
Counter = 0 ;
3700
3639
tempIconPositionX = -225 ;
3701
3640
tempIconPositionY -= IconSpaceOccupied;
3702
- IconPosition[IconPositionY] = tempIconPositionY;
3703
3641
}
3704
3642
else
3705
3643
{
@@ -4119,16 +4057,8 @@ void drawCheatsForcedDropItem()
4119
4057
float Scale = 0 .6f ;
4120
4058
4121
4059
// 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
-
4130
4060
int16_t tempForcedNPCItemDrop = MenuVar.ForcedNPCItemDrop ;
4131
- drawIconFromItem (IconPosition , tempForcedNPCItemDrop, Scale);
4061
+ drawIconFromItem (PosX, PosY , tempForcedNPCItemDrop, Scale);
4132
4062
4133
4063
// Draw the text for showing what the current item is
4134
4064
const char *CurrentLine = " Current Item" ;
0 commit comments