Skip to content

Commit

Permalink
Merge branch 'RogueCollab:master' into sort_reselect
Browse files Browse the repository at this point in the history
  • Loading branch information
435THz committed May 5, 2024
2 parents d1f7d61 + f2b4087 commit 8bbd3d5
Show file tree
Hide file tree
Showing 20 changed files with 343 additions and 191 deletions.
2 changes: 1 addition & 1 deletion RogueElements
7 changes: 5 additions & 2 deletions RogueEssence/Content/LoopedSong.cs
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ internal void BufferNeeded(object sender, EventArgs args)

private void queueBuffer()
{
long origPosition = pcmPosition;
int framesRead = FAudio.stb_vorbis_get_samples_float_interleaved(stbVorbisData, Channels, chunk, chunkSize);
framesRead = (int)Math.Min(framesRead, loopEnd-pcmPosition);

Expand All @@ -206,11 +207,13 @@ private void queueBuffer()
pcmPosition += framesRead;
}

if (loopEnd == pcmPosition)
if (pcmPosition == loopEnd)
{
FAudio.stb_vorbis_seek_frame(stbVorbisData, (uint)loopStart);
pcmPosition = loopStart;
queueBuffer();

if (origPosition > loopStart)
queueBuffer();
}
}

Expand Down
15 changes: 4 additions & 11 deletions RogueEssence/Data/DataManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -333,16 +333,7 @@ public void InitBase()


Version oldVersion = DevHelper.GetVersion(PathMod.ModPath(DATA_PATH + "Universal" + DATA_EXT));
//TODO: Created v0.7.14, delete on v1.1
if (oldVersion < new Version(0, 7, 14))
{
object data = DataManager.LoadData<ActiveEffect>(PathMod.ModPath(DataManager.DATA_PATH + "Universal" + DataManager.DATA_EXT));
UniversalActiveEffect universalActiveEffect = new UniversalActiveEffect();
universalActiveEffect.AddOther((ActiveEffect)data);
UniversalEvent = universalActiveEffect;
}
else
UniversalEvent = LoadData<UniversalActiveEffect>(PathMod.ModPath(DATA_PATH + "Universal" + DATA_EXT));
UniversalEvent = LoadData<UniversalActiveEffect>(PathMod.ModPath(DATA_PATH + "Universal" + DATA_EXT));

UniversalData = LoadData<TypeDict<BaseData>>(PathMod.ModPath(MISC_PATH + "Index" + DATA_EXT));
LoadStartParams();
Expand Down Expand Up @@ -2096,8 +2087,10 @@ public static BaseRescueMail LoadRescueMail(string filename)
int build = reader.ReadInt32();
int rev = reader.ReadInt32();
Version version;
if (build > -1)
if (rev > -1)
version = new Version(major, minor, build, rev);
else if (build > -1)
version = new Version(major, minor, build);
else
version = new Version(major, minor);
}
Expand Down
19 changes: 17 additions & 2 deletions RogueEssence/Data/ItemData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public enum UseType

public EntrySummary GenerateEntrySummary()
{
ItemEntrySummary summary = new ItemEntrySummary(Name, Released, Comment, SortCategory, UsageType);
ItemEntrySummary summary = new ItemEntrySummary(Name, Released, Comment, SortCategory, Icon, UsageType);
foreach (ItemState state in ItemStates)
summary.States.Add(new FlagType(state.GetType()));
return summary;
Expand Down Expand Up @@ -199,6 +199,7 @@ public string GetIconName()
[Serializable]
public class ItemEntrySummary : EntrySummary
{
public int Icon;
public ItemData.UseType UsageType;
public List<FlagType> States;

Expand All @@ -207,8 +208,9 @@ public ItemEntrySummary() : base()
States = new List<FlagType>();
}

public ItemEntrySummary(LocalText name, bool released, string comment, int sort, ItemData.UseType useType) : base(name, released, comment, sort)
public ItemEntrySummary(LocalText name, bool released, string comment, int sort, int icon, ItemData.UseType useType) : base(name, released, comment, sort)
{
Icon = icon;
UsageType = useType;
States = new List<FlagType>();
}
Expand All @@ -221,6 +223,19 @@ public override string GetColoredName()
return String.Format("[color=#FFCEFF]{0}[color]", Name.ToLocal());
}

/// <summary>
/// Gets the colored text string of the item, with icon included
/// </summary>
/// <returns></returns>
public string GetIconName()
{
string prefix = "";
if (Icon > -1)
prefix += ((char)(Icon + 0xE0A0)).ToString();

return String.Format("{0}{1}", prefix, GetColoredName());
}

public bool ContainsState<T>() where T : ItemState
{
return ContainsState(typeof(T));
Expand Down
81 changes: 2 additions & 79 deletions RogueEssence/Dev/DevHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -392,56 +392,14 @@ public static string ReverseEndian(string str)
public static void ReserializeBase()
{
{
//TODO: Created v0.5.20, delete on v1.1
string dir = PathMod.HardMod(DataManager.DATA_PATH + "Universal.bin");
if (File.Exists(dir))
{
object data = DataManager.LoadData<UniversalActiveEffect>(PathMod.ModPath(DataManager.DATA_PATH + "Universal" + DataManager.DATA_EXT));
DataManager.SaveData(PathMod.HardMod(DataManager.DATA_PATH + "Universal" + DataManager.DATA_EXT), data);

File.Delete(dir);
}
}

{
//TODO: Created v0.5.20, delete on v1.1
string dir = PathMod.HardMod(DataManager.DATA_PATH + "Universal" + DataManager.DATA_EXT);
if (File.Exists(dir))
{

Version oldVersion = GetVersion(dir);
//TODO: Created v0.7.14, delete on v1.1
if (oldVersion < new Version(0, 7, 14))
{
object data = DataManager.LoadData<ActiveEffect>(PathMod.HardMod(DataManager.DATA_PATH + "Universal" + DataManager.DATA_EXT));
UniversalActiveEffect universalActiveEffect = new UniversalActiveEffect();
universalActiveEffect.AddOther((ActiveEffect)data);
DataManager.SaveData(PathMod.HardMod(DataManager.DATA_PATH + "Universal" + DataManager.DATA_EXT), universalActiveEffect);
}
else
{
object data = DataManager.LoadData<ActiveEffect>(dir);
DataManager.SaveData(dir, data);
}

object data = DataManager.LoadData<ActiveEffect>(dir);
DataManager.SaveData(dir, data);
}
}

//TODO: Created v0.5.20, delete on v1.1
foreach (string dir in PathMod.GetHardModFiles(DataManager.FX_PATH, "*.fx"))
{
object data;
if (Path.GetFileName(dir) == "NoCharge.fx")
data = DataManager.LoadData<EmoteFX>(dir);
else
data = DataManager.LoadData<BattleFX>(dir);

string fileName = Path.GetFileNameWithoutExtension(dir);
DataManager.SaveData(PathMod.HardMod(Path.Join(DataManager.FX_PATH, fileName + DataManager.DATA_EXT)), data);

File.Delete(PathMod.HardMod(Path.Join(DataManager.FX_PATH, fileName + ".fx")));
}

foreach (string dir in PathMod.GetModFiles(DataManager.FX_PATH, "*" + DataManager.DATA_EXT))
{
object data;
Expand All @@ -466,36 +424,7 @@ public static void Reserialize(DataManager.DataType conversionFlags)
foreach (DataManager.DataType type in Enum.GetValues(typeof(DataManager.DataType)))
{
if (type != DataManager.DataType.All && (conversionFlags & type) != DataManager.DataType.None)
{
//TODO: Created v0.5.20, delete on v1.1
foreach (string dir in PathMod.GetHardModFiles(DataManager.DATA_PATH + type.ToString() + "/", "*.bin"))
{
object data = DataManager.LoadData(dir, type.GetClassType());
if (data != null)
{
string fileName = Path.GetFileNameWithoutExtension(dir);
if (data is MonsterData)
{
MonsterData monData = data as MonsterData;
int dexNum = 0;
foreach (string key in DataManager.Instance.Conversions[DataManager.DataType.Monster].Keys)
{
if (DataManager.Instance.Conversions[DataManager.DataType.Monster][key] == fileName)
{
Int32.TryParse(key, out dexNum);
break;
}
}
monData.IndexNum = dexNum;
}
DataManager.SaveData(PathMod.HardMod(Path.Join(DataManager.DATA_PATH + type.ToString() + "/", fileName + DataManager.DATA_EXT)), data);

File.Delete(PathMod.HardMod(Path.Join(DataManager.DATA_PATH + type.ToString() + "/", fileName + ".bin")));
}
}

ReserializeData(DataManager.DATA_PATH + type.ToString() + "/", DataManager.DATA_EXT, type.GetClassType());
}
}
}

Expand Down Expand Up @@ -536,15 +465,9 @@ public static void RunExtraIndexing(DataManager.DataType conversionFlags)
{
baseData.ReIndex();
DataManager.SaveData(PathMod.HardMod(DataManager.MISC_PATH + baseData.FileName + DataManager.DATA_EXT), baseData);

//TODO: Created v0.5.20, delete on v1.1
File.Delete(PathMod.HardMod(DataManager.MISC_PATH + baseData.FileName + ".bin"));
}
}
DataManager.SaveData(PathMod.ModPath(DataManager.MISC_PATH + "Index" + DataManager.DATA_EXT), DataManager.Instance.UniversalData);

//TODO: Created v0.5.20, delete on v1.1
File.Delete(PathMod.HardMod(DataManager.MISC_PATH + "Index.bin"));
}


Expand Down
32 changes: 12 additions & 20 deletions RogueEssence/Dungeon/DSceneMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1367,16 +1367,7 @@ public IEnumerator<YieldInstruction> KnockBack(Character character, Dir8 dir, in
//face direction
character.CharDir = dir.Reverse();

Loc endLoc = character.CharLoc;

//move to the point at range.
for (int ii = 0; ii < range; ii++)
{
//if the next location is blocked, stop.
if (ShotBlocked(character, endLoc, dir, Alignment.None, true, true))
break;
endLoc = endLoc + dir.GetLoc();
}
Loc endLoc = DungeonScene.Instance.MoveShotUntilBlocked(character, character.CharLoc, dir, range, Alignment.None, true, true);

yield return CoroutineManager.Instance.StartCoroutine(DungeonScene.Instance.ProcessBattleFX(character, character, DataManager.Instance.KnockbackFX));

Expand Down Expand Up @@ -1409,16 +1400,7 @@ public IEnumerator<YieldInstruction> KnockBack(Character character, Dir8 dir, in

public IEnumerator<YieldInstruction> JumpTo(Character character, Dir8 dir, int range)
{
Loc endLoc = character.CharLoc;

//move to the point at range.
for (int ii = 0; ii < range; ii++)
{
//if the next location is blocked, stop.
if (ShotBlocked(character, endLoc, dir, Alignment.None, true, true))
break;
endLoc = endLoc + dir.GetLoc();
}
Loc endLoc = DungeonScene.Instance.MoveShotUntilBlocked(character, character.CharLoc, dir, range, Alignment.None, true, true);

//if the location is occupied, keep moving
while (ZoneManager.Instance.CurrentMap.GetCharAtLoc(endLoc) != null)
Expand Down Expand Up @@ -1552,6 +1534,16 @@ public bool CanTeamSeeCharLoc(Team team, Loc loc)
return false;
}

public Loc MoveShotUntilBlocked(Character character, Loc loc, Dir8 dir, int range, Alignment blockedAlignments, bool useMobility, bool blockedByWall)
{
Loc endLoc = loc;
for (int ii = 0; ii < range; ii++)
{
if (!DungeonScene.Instance.ShotBlocked(character, endLoc, dir, blockedAlignments, useMobility, blockedByWall))
endLoc = endLoc + dir.GetLoc();
}
return endLoc;
}

public bool ShotBlocked(Character character, Loc loc, Dir8 dir, Alignment blockedAlignments, bool useMobility, bool blockedByWall)
{
Expand Down
2 changes: 1 addition & 1 deletion RogueEssence/Dungeon/Team.cs
Original file line number Diff line number Diff line change
Expand Up @@ -601,7 +601,7 @@ public int GetStorageValue()
if (Storage.GetValueOrDefault(key, 0) > 0)
{
if (DataManager.Instance.DataIndices[DataManager.DataType.Item].ContainsKey(key))
invValue += DataManager.Instance.GetItem(key).Price;
invValue += DataManager.Instance.GetItem(key).Price * Storage[key];
}
}
return invValue;
Expand Down
46 changes: 0 additions & 46 deletions RogueEssence/LevelGen/IFloorGen.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,6 @@ public override string ToString()
}
return String.Format("{0}: {1}", this.GetType().GetFormattedTypeName(), startInfo);
}

//TODO: Created v0.5.11, delete on v1.0.0
[OnDeserialized]
internal void OnDeserializedMethod(StreamingContext context)
{
foreach (GenStep<MapGenContext> step in this.GenSteps.EnumerateInOrder())
{
WaterStep<MapGenContext> waterStep = step as WaterStep<MapGenContext>;
if (waterStep != null && waterStep.TerrainStencil == null)
waterStep.TerrainStencil = new MapTerrainStencil<MapGenContext>(false, true, false, false);
}
}
}

/// <summary>
Expand Down Expand Up @@ -78,18 +66,6 @@ public override string ToString()
}
return String.Format("{0}: {1}", this.GetType().GetFormattedTypeName(), startInfo);
}

//TODO: Created v0.5.11, delete on v1.0.0
[OnDeserialized]
internal void OnDeserializedMethod(StreamingContext context)
{
foreach (GenStep<ListMapGenContext> step in this.GenSteps.EnumerateInOrder())
{
WaterStep<ListMapGenContext> waterStep = step as WaterStep<ListMapGenContext>;
if (waterStep != null && waterStep.TerrainStencil == null)
waterStep.TerrainStencil = new MapTerrainStencil<ListMapGenContext>(false, true, false, false);
}
}
}

/// <summary>
Expand Down Expand Up @@ -120,17 +96,6 @@ public override string ToString()
return String.Format("{0}: {1}", this.GetType().GetFormattedTypeName(), startInfo);
}

//TODO: Created v0.5.11, delete on v1.0.0
[OnDeserialized]
internal void OnDeserializedMethod(StreamingContext context)
{
foreach (GenStep<StairsMapGenContext> step in this.GenSteps.EnumerateInOrder())
{
WaterStep<StairsMapGenContext> waterStep = step as WaterStep<StairsMapGenContext>;
if (waterStep != null && waterStep.TerrainStencil == null)
waterStep.TerrainStencil = new MapTerrainStencil<StairsMapGenContext>(false, true, false, false);
}
}
}

/// <summary>
Expand Down Expand Up @@ -161,17 +126,6 @@ public override string ToString()
return String.Format("{0}: {1}", this.GetType().GetFormattedTypeName(), startInfo);
}

//TODO: Created v0.5.11, delete on v1.0.0
[OnDeserialized]
internal void OnDeserializedMethod(StreamingContext context)
{
foreach (GenStep<MapLoadContext> step in this.GenSteps.EnumerateInOrder())
{
WaterStep<MapLoadContext> waterStep = step as WaterStep<MapLoadContext>;
if (waterStep != null && waterStep.TerrainStencil == null)
waterStep.TerrainStencil = new MapTerrainStencil<MapLoadContext>(false, true, false, false);
}
}
}

[Serializable]
Expand Down
2 changes: 2 additions & 0 deletions RogueEssence/LevelGen/Zones/ZoneSteps/SpreadRoomZoneStep.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,14 @@ protected override bool ApplyToFloor(ZoneGenContext zoneContext, IGenContext con
if (specialStep.CanApply(context))
{
specialStep.Rooms = new PresetPicker<RoomGen<MapGenContext>>(genDuo.GridOption);
specialStep.Filters = genDuo.Filters;
specialStep.RoomComponents.Set(new ImmutableRoom());
queue.Enqueue(PriorityGrid, specialStep);
}
else if (listSpecialStep.CanApply(context))
{
listSpecialStep.Rooms = new PresetPicker<RoomGen<ListMapGenContext>>(genDuo.ListOption);
listSpecialStep.Filters = genDuo.Filters;
listSpecialStep.RoomComponents.Set(new ImmutableRoom());
PresetPicker<PermissiveRoomGen<ListMapGenContext>> picker = new PresetPicker<PermissiveRoomGen<ListMapGenContext>>();
picker.ToSpawn = new RoomGenAngledHall<ListMapGenContext>(0);
Expand Down
4 changes: 2 additions & 2 deletions RogueEssence/Menu/Items/SwapGiveMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public SwapGiveMenu(int defaultChoice, int openSpaces, OnMultiChoice chooseSlots
{
Character activeChar = DataManager.Instance.Save.ActiveTeam.Players[ii];
if (!String.IsNullOrEmpty(activeChar.EquippedItem.ID))
itemPresence[activeChar.EquippedItem.ID]++;
itemPresence[activeChar.EquippedItem.ID] = itemPresence.GetValueOrDefault(activeChar.EquippedItem.ID, 0) + 1;
}

List<MenuChoice> flatChoices = new List<MenuChoice>();
Expand All @@ -49,7 +49,7 @@ public SwapGiveMenu(int defaultChoice, int openSpaces, OnMultiChoice chooseSlots
{
AllowedGoods.Add(key);

MenuText menuText = new MenuText(DataManager.Instance.GetItem(key).GetIconName(), new Loc(2, 1));
MenuText menuText = new MenuText(itemEntry.GetIconName(), new Loc(2, 1));
MenuText menuCount = new MenuText("(" + itemPresence[key] + ")", new Loc(ItemMenu.ITEM_MENU_WIDTH - 8 * 4, 1), DirV.Up, DirH.Right, Color.White);
flatChoices.Add(new MenuElementChoice(() => { }, true, menuText, menuCount));
}
Expand Down
Loading

0 comments on commit 8bbd3d5

Please sign in to comment.