mirror of
https://github.com/AdAstra-LD/DS-Pokemon-Rom-Editor.git
synced 2026-05-17 01:20:32 -05:00
Populate learnsets on Trainer Moves check
This commit is contained in:
parent
2e8a44343e
commit
e4552f0dd5
|
|
@ -7792,7 +7792,8 @@ namespace DSPRE {
|
|||
DirNames.trainerGraphics,
|
||||
DirNames.textArchives,
|
||||
DirNames.monIcons,
|
||||
DirNames.personalPokeData
|
||||
DirNames.personalPokeData,
|
||||
DirNames.learnsets
|
||||
});
|
||||
|
||||
int numPokemonSpecies = Directory.GetFiles(RomInfo.gameDirs[DirNames.personalPokeData].unpackedDir, "*").Count();
|
||||
|
|
@ -8171,12 +8172,34 @@ namespace DSPRE {
|
|||
}
|
||||
|
||||
private void trainerMovesCheckBox_CheckedChanged(object sender, EventArgs e) {
|
||||
for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) {
|
||||
for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) {
|
||||
for (int j = 0; j < Party.MOVES_PER_POKE; j++) {
|
||||
(partyMovesGroupboxList[i].Controls[j] as ComboBox).Enabled = trainerMovesCheckBox.Checked;
|
||||
(partyMovesGroupboxList[i].Controls[j] as ComboBox).Enabled = trainerMovesCheckBox.Checked;
|
||||
}
|
||||
if (trainerMovesCheckBox.Checked && i < currentTrainerFile.trp.partyCount) {
|
||||
Helpers.BackUpDisableHandler();
|
||||
Helpers.DisableHandlers();
|
||||
LearnsetData learnset = new LearnsetData((int)currentTrainerFile.party[i].pokeID);
|
||||
int level = currentTrainerFile.party[i].level;
|
||||
currentTrainerFile.party[i].moves = learnset.GetLearnsetAtLevel(level);
|
||||
Debug.Print("Changing the moves of Pokemon " + i.ToString() + " which is Pokemon " + currentTrainerFile.party[i].pokeID);
|
||||
Debug.Print("The new moves will be: " + string.Join(", ", currentTrainerFile.party[i].moves));
|
||||
for (int j = 0; j < Party.MOVES_PER_POKE; j++) {
|
||||
(partyMovesGroupboxList[i].Controls[j] as ComboBox).SelectedIndex = currentTrainerFile.party[i].moves[j];
|
||||
Debug.Print("Move for dropdwon " + j.ToString() + " is " + currentTrainerFile.party[i].moves[j].ToString());
|
||||
}
|
||||
Helpers.EnableHandlers();
|
||||
RefreshTrainerPartyGUI();
|
||||
Helpers.RestoreDisableHandler();
|
||||
} else {
|
||||
currentTrainerFile.party[i].moves = null;
|
||||
}
|
||||
currentTrainerFile.party[i].moves = trainerMovesCheckBox.Checked ? new ushort[Party.MOVES_PER_POKE] : null;
|
||||
}
|
||||
Helpers.BackUpDisableHandler();
|
||||
Helpers.EnableHandlers();
|
||||
RefreshTrainerPartyGUI();
|
||||
Helpers.RestoreDisableHandler();
|
||||
|
||||
}
|
||||
private void trainerItemsCheckBox_CheckedChanged(object sender, EventArgs e) {
|
||||
for (int i = 0; i < TrainerFile.POKE_IN_PARTY; i++) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using DSPRE.ROMFiles;
|
||||
using static DSPRE.RomInfo;
|
||||
|
|
@ -10,6 +11,31 @@ namespace DSPRE {
|
|||
|
||||
public readonly UniqueList<(byte level, ushort move)> list;
|
||||
|
||||
public ushort[] GetLearnsetAtLevel(int atLevel) {
|
||||
ushort[] learnset = new ushort[4] {0, 0 , 0, 0};
|
||||
foreach ((ushort level, ushort move) in list)
|
||||
{
|
||||
if (level <= atLevel)
|
||||
{
|
||||
if (learnset[0] == 0) {
|
||||
learnset[0] = move;
|
||||
} else if (learnset[1] == 0) {
|
||||
learnset[1] = move;
|
||||
} else if (learnset[2] == 0) {
|
||||
learnset[2] = move;
|
||||
} else if (learnset[3] == 0) {
|
||||
learnset[3] = move;
|
||||
} else {
|
||||
learnset[0] = learnset[1];
|
||||
learnset[1] = learnset[2];
|
||||
learnset[2] = learnset[3];
|
||||
learnset[3] = move;
|
||||
}
|
||||
}
|
||||
}
|
||||
return learnset;
|
||||
}
|
||||
|
||||
public LearnsetData(Stream stream) {
|
||||
int numEntries = (int)(stream.Length / sizeof(ushort));
|
||||
list = new UniqueList<(byte level, ushort move)>(numEntries - 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user