Browse Source

Load spell icon based on data (#8072)

pull/8077/head
Anders Jenbo 8 months ago committed by GitHub
parent
commit
108cf4b42d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 8
      CMake/Assets.cmake
  2. 9
      CMake/Mods.cmake
  3. 4
      Source/DiabloUI/credits.cpp
  4. 5
      Source/DiabloUI/diabloui.cpp
  5. 6
      Source/DiabloUI/title.cpp
  6. 48
      Source/cursor.cpp
  7. 31
      Source/diablo.cpp
  8. 16
      Source/engine/load_cel.hpp
  9. 6
      Source/misdat.cpp
  10. 2
      Source/misdat.h
  11. 16
      Source/panels/spell_icons.cpp
  12. 1
      Source/spelldat.h
  13. 40
      assets/txtdata/missiles/misdat.tsv
  14. 13
      assets/txtdata/missiles/missile_sprites.tsv
  15. 0
      mods/Hellfire/data/inv/objcurs2-widths.txt
  16. 109
      mods/Hellfire/txtdata/missiles/misdat.tsv
  17. 60
      mods/Hellfire/txtdata/missiles/missile_sprites.tsv
  18. 0
      mods/Hellfire/ui_art/hf_titlew.clx
  19. 0
      mods/Hellfire/ui_art/supportw.clx

8
CMake/Assets.cmake

@ -178,18 +178,14 @@ set(devilutionx_assets
txtdata/sound/effects.tsv
txtdata/spells/spelldat.tsv
ui_art/diablo.pal
ui_art/hellfire.pal
ui_art/creditsw.clx
ui_art/dvl_but_sml.clx
ui_art/dvl_lrpopup.clx
ui_art/hf_titlew.clx
ui_art/mainmenuw.clx
ui_art/supportw.clx)
ui_art/mainmenuw.clx)
if(NOT UNPACKED_MPQS)
list(APPEND devilutionx_assets
data/inv/objcurs-widths.txt
data/inv/objcurs2-widths.txt)
data/inv/objcurs-widths.txt)
endif()
if(NOT USE_SDL1 AND NOT VITA)

9
CMake/Mods.cmake

@ -5,10 +5,19 @@ endif()
set(hellfire_mod
lua/mods/Hellfire/init.lua
txtdata/items/unique_itemdat.tsv
txtdata/missiles/misdat.tsv
txtdata/missiles/missile_sprites.tsv
txtdata/monsters/monstdat.tsv
ui_art/diablo.pal
ui_art/hf_titlew.clx
ui_art/supportw.clx
ui_art/mainmenuw.clx)
if(NOT UNPACKED_MPQS)
list(APPEND devilutionx_assets
data/inv/objcurs2-widths.txt)
endif()
foreach(asset_file ${hellfire_mod})
set(src "${CMAKE_CURRENT_SOURCE_DIR}/mods/Hellfire/${asset_file}")
set(dst "${DEVILUTIONX_MODS_OUTPUT_DIRECTORY}/Hellfire/${asset_file}")

4
Source/DiabloUI/credits.cpp

@ -179,8 +179,8 @@ bool UiCreditsDialog()
bool UiSupportDialog()
{
if (gbIsHellfire) {
ArtBackgroundWidescreen = LoadOptionalClx("ui_art\\supportw.clx");
ArtBackgroundWidescreen = LoadOptionalClx("ui_art\\supportw.clx");
if (ArtBackgroundWidescreen.has_value()) {
LoadBackgroundArt("ui_art\\support");
} else {
ArtBackgroundWidescreen = LoadOptionalClx("ui_art\\creditsw.clx");

5
Source/DiabloUI/diabloui.cpp

@ -589,9 +589,8 @@ void LoadHeros()
void LoadUiGFX()
{
if (gbIsHellfire) {
ArtLogo = LoadPcxSpriteList("ui_art\\hf_logo2", /*numFrames=*/16, /*transparentColor=*/0);
} else {
ArtLogo = LoadPcxSpriteList("ui_art\\hf_logo2", /*numFrames=*/16, /*transparentColor=*/0);
if (!ArtLogo.has_value()) {
ArtLogo = LoadPcxSpriteList("ui_art\\smlogo", /*numFrames=*/15, /*transparentColor=*/250);
}
DifficultyIndicator = LoadPcx("ui_art\\r1_gry", /*transparentColor=*/0);

6
Source/DiabloUI/title.cpp

@ -20,9 +20,9 @@ std::vector<std::unique_ptr<UiItemBase>> vecTitleScreen;
void TitleLoad()
{
if (gbIsHellfire) {
ArtBackgroundWidescreen = LoadOptionalClx("ui_art\\hf_titlew.clx");
if (ArtBackgroundWidescreen.has_value()) {
LoadBackgroundArt("ui_art\\hf_logo1", 16);
ArtBackgroundWidescreen = LoadOptionalClx("ui_art\\hf_titlew.clx");
} else {
LoadBackgroundArt("ui_art\\title");
DiabloTitleLogo = LoadPcxSpriteList("ui_art\\logo", /*numFrames=*/15, /*transparentColor=*/250);
@ -44,7 +44,7 @@ void UiTitleDialog()
{
TitleLoad();
const Point uiPosition = GetUIRectangle().position;
if (gbIsHellfire) {
if (ArtBackgroundWidescreen.has_value()) {
SDL_Rect rect = MakeSdlRect(0, uiPosition.y, 0, 0);
if (ArtBackgroundWidescreen)
vecTitleScreen.push_back(std::make_unique<UiImageClx>((*ArtBackgroundWidescreen)[0], rect, UiFlags::AlignCenter));

48
Source/cursor.cpp

@ -74,7 +74,7 @@ bool IsValidMonsterForSelection(const Monster &monster)
bool TrySelectMonster(bool flipflag, Point tile, tl::function_ref<bool(const Monster &)> isValidMonster)
{
auto checkPosition = [&](SelectionRegion selectionRegion, Displacement displacement) {
Point posToCheck = tile + displacement;
const Point posToCheck = tile + displacement;
if (!InDungeonBounds(posToCheck) || dMonster[posToCheck.x][posToCheck.y] == 0)
return;
const uint16_t monsterId = std::abs(dMonster[posToCheck.x][posToCheck.y]) - 1;
@ -102,7 +102,7 @@ bool TrySelectMonster(bool flipflag, Point tile, tl::function_ref<bool(const Mon
bool TrySelectTowner(bool flipflag, Point tile)
{
auto checkPosition = [&](Displacement displacement) {
Point posToCheck = tile + displacement;
const Point posToCheck = tile + displacement;
if (!InDungeonBounds(posToCheck) || dMonster[posToCheck.x][posToCheck.y] == 0)
return;
const uint16_t monsterId = std::abs(dMonster[posToCheck.x][posToCheck.y]) - 1;
@ -276,7 +276,7 @@ bool TrySelectPixelBased(Point tile)
Displacement ret = Displacement(Direction::East) * renderingPoint.x;
// Rows
ret += Displacement(Direction::South) * renderingPoint.y / 2;
if (renderingPoint.y & 1)
if ((renderingPoint.y & 1) == 1)
ret.deltaY += 1;
return ret;
};
@ -285,8 +285,8 @@ bool TrySelectPixelBased(Point tile)
// We search the rendered rows/columns backwards, because the last rendered tile overrides previous rendered pixels.
auto searchArea = PointsInRectangle(Rectangle { { -1, -1 }, { 3, 8 } });
for (auto it = searchArea.rbegin(); it != searchArea.rend(); ++it) {
Point renderingColumnRaw = *it;
Point adjacentTile = tile + convertFromRenderingToWorldTile(renderingColumnRaw);
const Point renderingColumnRaw = *it;
const Point adjacentTile = tile + convertFromRenderingToWorldTile(renderingColumnRaw);
if (!InDungeonBounds(adjacentTile))
continue;
@ -297,7 +297,7 @@ bool TrySelectPixelBased(Point tile)
if (leveltype == DTYPE_TOWN) {
const Towner &towner = Towners[monsterId];
const ClxSprite sprite = towner.currentSprite();
Displacement renderingOffset = towner.getRenderingOffset();
const Displacement renderingOffset = towner.getRenderingOffset();
if (checkSprite(adjacentTile, sprite, renderingOffset)) {
cursPosition = adjacentTile;
pcursmonst = monsterId;
@ -307,7 +307,7 @@ bool TrySelectPixelBased(Point tile)
const Monster &monster = Monsters[monsterId];
if (IsTileLit(adjacentTile) && IsValidMonsterForSelection(monster)) {
const ClxSprite sprite = monster.animInfo.currentSprite();
Displacement renderingOffset = monster.getRenderingOffset(sprite);
const Displacement renderingOffset = monster.getRenderingOffset(sprite);
if (checkSprite(adjacentTile, sprite, renderingOffset)) {
cursPosition = adjacentTile;
pcursmonst = monsterId;
@ -374,10 +374,19 @@ bool TrySelectPixelBased(Point tile)
}
#ifndef UNPACKED_MPQS
std::vector<uint16_t> ReadWidths(const char *path)
std::vector<uint16_t> ReadWidths(AssetRef &&ref)
{
size_t len;
const std::unique_ptr<char[]> data = LoadFileInMem<char>(path, &len);
const size_t len = ref.size();
if (len == 0) {
app_fatal("Missing widths");
}
std::unique_ptr<char[]> data { new char[len] };
AssetHandle handle = OpenAsset(std::move(ref));
if (!handle.ok() || !handle.read(data.get(), len)) {
app_fatal("Failed to load widths");
}
std::string_view str { data.get(), len };
std::vector<uint16_t> result;
while (!str.empty()) {
@ -385,7 +394,7 @@ std::vector<uint16_t> ReadWidths(const char *path)
const ParseIntResult<uint16_t> parseResult = ParseInt<uint16_t>(str, std::numeric_limits<uint16_t>::min(),
std::numeric_limits<uint16_t>::max(), &end);
if (!parseResult.has_value()) {
app_fatal(StrCat("Failed to parse ", path, ": [", str, "]"));
app_fatal(StrCat("Failed to parse width value from: [", str, "]"));
}
result.push_back(parseResult.value());
str.remove_prefix(end - str.data());
@ -424,13 +433,12 @@ void InitCursor()
assert(!pCursCels);
#ifdef UNPACKED_MPQS
pCursCels = LoadClx("data\\inv\\objcurs.clx");
if (gbIsHellfire) {
pCursCels2 = LoadClx("data\\inv\\objcurs2.clx");
}
pCursCels2 = LoadOptionalClx("data\\inv\\objcurs2.clx");
#else
pCursCels = LoadCel("data\\inv\\objcurs", ReadWidths("data\\inv\\objcurs-widths.txt").data());
if (gbIsHellfire) {
pCursCels2 = LoadCel("data\\inv\\objcurs2", ReadWidths("data\\inv\\objcurs2-widths.txt").data());
pCursCels = LoadCel("data\\inv\\objcurs", ReadWidths(FindAsset("data\\inv\\objcurs-widths.txt")).data());
AssetRef ref = FindAsset("data\\inv\\objcurs2-widths.txt");
if (ref.ok()) {
pCursCels2 = LoadOptionalCel("data\\inv\\objcurs2", ReadWidths(std::move(ref)).data());
}
#endif
ClearCursor();
@ -450,7 +458,7 @@ ClxSprite GetInvItemSprite(int cursId)
if (static_cast<size_t>(cursId) <= numSprites) {
return (*pCursCels)[cursId - 1];
}
assert(gbIsHellfire);
assert(pCursCels2.has_value());
assert(cursId - numSprites <= pCursCels2->numSprites());
return (*pCursCels2)[cursId - numSprites - 1];
}
@ -476,7 +484,7 @@ void CreateHalfSizeItemSprites()
if (HalfSizeItemSprites != nullptr)
return;
const uint32_t numInvItems = pCursCels->numSprites() - (static_cast<uint32_t>(CURSOR_FIRSTITEM) - 1)
+ (gbIsHellfire ? pCursCels2->numSprites() : 0);
+ (pCursCels2.has_value() ? pCursCels2->numSprites() : 0);
HalfSizeItemSprites = new OptionalOwnedClxSpriteList[numInvItems];
HalfSizeItemSpritesRed = new OptionalOwnedClxSpriteList[numInvItems];
const uint8_t *redTrn = GetInfravisionTRN();
@ -513,7 +521,7 @@ void CreateHalfSizeItemSprites()
for (size_t i = static_cast<int>(CURSOR_FIRSTITEM) - 1, n = pCursCels->numSprites(); i < n; ++i, ++outputIndex) {
createHalfSize((*pCursCels)[i], outputIndex);
}
if (gbIsHellfire) {
if (pCursCels2.has_value()) {
for (size_t i = 0, n = pCursCels2->numSprites(); i < n; ++i, ++outputIndex) {
createHalfSize((*pCursCels2)[i], outputIndex);
}

31
Source/diablo.cpp

@ -1304,17 +1304,22 @@ tl::expected<void, std::string> LoadLvlGFX()
};
switch (leveltype) {
case DTYPE_TOWN:
if (gbIsHellfire) {
return loadAll(
"nlevels\\towndata\\town.cel",
"nlevels\\towndata\\town.til",
"levels\\towndata\\towns");
case DTYPE_TOWN: {
auto cel = LoadFileInMemWithStatus("nlevels\\towndata\\town.cel");
if (!cel.has_value()) {
ASSIGN_OR_RETURN(pDungeonCels, LoadFileInMemWithStatus("levels\\towndata\\town.cel"));
} else {
pDungeonCels = std::move(*cel);
}
return loadAll(
"levels\\towndata\\town.cel",
"levels\\towndata\\town.til",
"levels\\towndata\\towns");
auto til = LoadFileInMemWithStatus<MegaTile>("nlevels\\towndata\\town.til");
if (!til.has_value()) {
ASSIGN_OR_RETURN(pMegaTiles, LoadFileInMemWithStatus<MegaTile>("levels\\towndata\\town.til"));
} else {
pMegaTiles = std::move(*til);
}
ASSIGN_OR_RETURN(pSpecialCels, LoadCelWithStatus("levels\\towndata\\towns", SpecialCelWidth));
return {};
}
case DTYPE_CATHEDRAL:
return loadAll(
"levels\\l1data\\l1.cel",
@ -1359,7 +1364,7 @@ tl::expected<void, std::string> LoadAllGFX()
IncProgress();
RETURN_IF_ERROR(InitObjectGFX());
IncProgress();
RETURN_IF_ERROR(InitMissileGFX(gbIsHellfire));
RETURN_IF_ERROR(InitMissileGFX());
IncProgress();
return {};
}
@ -3101,7 +3106,7 @@ tl::expected<void, std::string> LoadGameLevelSetLevel(bool firstflag, lvl_entry
#if !defined(USE_SDL1) && !defined(__vita__)
InitVirtualGamepadGFX();
#endif
RETURN_IF_ERROR(InitMissileGFX(gbIsHellfire));
RETURN_IF_ERROR(InitMissileGFX());
IncProgress();
}
InitCorpses();
@ -3162,7 +3167,7 @@ tl::expected<void, std::string> LoadGameLevelStandardLevel(bool firstflag, lvl_e
IncProgress();
RETURN_IF_ERROR(InitMissileGFX(gbIsHellfire));
RETURN_IF_ERROR(InitMissileGFX());
IncProgress();
IncProgress();

16
Source/engine/load_cel.hpp

@ -26,6 +26,14 @@ inline OwnedClxSpriteList LoadCel(const char *pszName, uint16_t width)
return LoadCelListOrSheet(pszName, PointerOrValue<uint16_t> { width }).list();
}
inline OptionalOwnedClxSpriteList LoadOptionalCel(const char *pszName, uint16_t width)
{
tl::expected<OwnedClxSpriteListOrSheet, std::string> result = LoadCelListOrSheetWithStatus(pszName, PointerOrValue<uint16_t> { width });
if (!result.has_value())
return std::nullopt;
return (*std::move(result)).list();
}
inline tl::expected<OwnedClxSpriteList, std::string> LoadCelWithStatus(const char *pszName, uint16_t width)
{
ASSIGN_OR_RETURN(OwnedClxSpriteListOrSheet result, LoadCelListOrSheetWithStatus(pszName, PointerOrValue<uint16_t> { width }));
@ -37,6 +45,14 @@ inline OwnedClxSpriteList LoadCel(const char *pszName, const uint16_t *widths)
return LoadCelListOrSheet(pszName, PointerOrValue<uint16_t> { widths }).list();
}
inline OptionalOwnedClxSpriteList LoadOptionalCel(const char *pszName, const uint16_t *widths)
{
tl::expected<OwnedClxSpriteListOrSheet, std::string> result = LoadCelListOrSheetWithStatus(pszName, PointerOrValue<uint16_t> { widths });
if (!result.has_value())
return std::nullopt;
return (*std::move(result)).list();
}
inline tl::expected<OwnedClxSpriteList, std::string> LoadCelWithStatus(const char *pszName, const uint16_t *widths)
{
ASSIGN_OR_RETURN(OwnedClxSpriteListOrSheet result, LoadCelListOrSheetWithStatus(pszName, PointerOrValue<uint16_t> { widths }));

6
Source/misdat.cpp

@ -383,7 +383,7 @@ void LoadMisdat()
}
// Sanity check because we do not actually parse the IDs yet.
assert(static_cast<size_t>(MissileID::LAST) + 1 == MissilesData.size());
assert(static_cast<size_t>(MissileID::LastDiablo) + 1 == MissilesData.size() || static_cast<size_t>(MissileID::LAST) + 1 == MissilesData.size());
MissilesData.shrink_to_fit();
}
@ -443,14 +443,12 @@ const MissileData &GetMissileData(MissileID missileId)
return MissilesData[static_cast<std::underlying_type_t<MissileID>>(missileId)];
}
tl::expected<void, std::string> InitMissileGFX(bool loadHellfireGraphics)
tl::expected<void, std::string> InitMissileGFX()
{
if (HeadlessMode)
return {};
for (size_t mi = 0; mi < MissileSpriteData.size(); ++mi) {
if (!loadHellfireGraphics && mi >= static_cast<uint8_t>(MissileGraphicID::HorkSpawn))
break;
if (MissileSpriteData[mi].flags == MissileGraphicsFlags::MonsterOwned)
continue;
RETURN_IF_ERROR(MissileSpriteData[mi].LoadGFX());

2
Source/misdat.h

@ -246,7 +246,7 @@ MissileFileData &GetMissileSpriteData(MissileGraphicID graphicId);
void LoadMissileData();
tl::expected<void, std::string> InitMissileGFX(bool loadHellfireGraphics = false);
tl::expected<void, std::string> InitMissileGFX();
void FreeMissileGFX();
} // namespace devilution

16
Source/panels/spell_icons.cpp

@ -86,21 +86,19 @@ const SpellIcon SpellITbl[] = {
tl::expected<void, std::string> LoadLargeSpellIcons()
{
if (!gbIsHellfire) {
#ifdef UNPACKED_MPQS
LargeSpellIcons = LoadOptionalClx("data\\spelicon_fg.clx");
LargeSpellIconsBackground = LoadOptionalClx("data\\spelicon_bg.clx");
if (!LargeSpellIcons.has_value() || !LargeSpellIconsBackground.has_value()) {
ASSIGN_OR_RETURN(LargeSpellIcons, LoadClxWithStatus("ctrlpan\\spelicon_fg.clx"));
ASSIGN_OR_RETURN(LargeSpellIconsBackground, LoadClxWithStatus("ctrlpan\\spelicon_bg.clx"));
}
#else
LargeSpellIcons = LoadOptionalCel("data\\spelicon", SPLICONLENGTH);
if (!LargeSpellIcons.has_value()) {
ASSIGN_OR_RETURN(LargeSpellIcons, LoadCelWithStatus("ctrlpan\\spelicon", SPLICONLENGTH));
#endif
} else {
#ifdef UNPACKED_MPQS
ASSIGN_OR_RETURN(LargeSpellIcons, LoadClxWithStatus("data\\spelicon_fg.clx"));
ASSIGN_OR_RETURN(LargeSpellIconsBackground, LoadClxWithStatus("data\\spelicon_bg.clx"));
#else
ASSIGN_OR_RETURN(LargeSpellIcons, LoadCelWithStatus("data\\spelicon", SPLICONLENGTH));
#endif
}
#endif
SetSpellTrans(SpellType::Skill);
return {};
}

1
Source/spelldat.h

@ -168,6 +168,7 @@ enum class MissileID : int8_t {
RedPortal,
DiabloApocalypseBoom,
DiabloApocalypse,
LastDiablo = DiabloApocalypse,
Mana,
Magi,
LightningWall,

40
assets/txtdata/missiles/misdat.tsv

@ -67,43 +67,3 @@ WeaponExplosion AddWeaponExplosion ProcessWeaponExplosion Physical
RedPortal AddRedPortal ProcessRedPortal SpellPortal RedPortal Physical
DiabloApocalypseBoom AddApocalypseBoom ProcessApocalypseBoom DiabloApocalypseBoom Physical
DiabloApocalypse AddDiabloApocalypse Physical,Invisible
Mana AddMana Physical,Invisible
Magi AddMagi Physical,Invisible
LightningWall AddLightningWall ProcessLightningWall SpellLightningWall SpellLightningHit Lightning Lightning
LightningWallControl AddWallControl ProcessWallControl Lightning Lightning,Invisible
Immolation AddNova ProcessImmolation SpellFirebolt SpellFireHit Fireball Fire
SpectralArrow AddSpectralArrow ProcessSpectralArrow Arrow Physical,Arrow
FireballBow AddImmolation ProcessFireball ShootFireballBow SpellFireHit Fireball Fire Blockable
LightningBow AddLightningBow ProcessLightningBow ShootFireballBow Lightning Lightning,Invisible
ChargedBoltBow AddChargedBoltBow ProcessChargedBolt SpellChargedBolt ChargedBolt Lightning Blockable
HolyBoltBow AddHolyBolt ProcessHolyBolt SpellHolyBolt SpellLightningHit HolyBolt Physical Blockable
Warp AddWarp ProcessTeleport SpellEtherealize Physical,Invisible
Reflect AddReflect SpellManaShield Reflect Physical,Invisible
Berserk AddBerserk Physical,Invisible
RingOfFire AddRingOfFire ProcessRingOfFire FireWall Fire,Invisible
StealPotions AddStealPotions Physical,Invisible
StealMana AddStealMana SpellEnd Physical,Invisible
RingOfLightning Lightning Lightning,Invisible
Search AddSearch ProcessSearch Physical,Invisible
Aura SpellLightningHit FlashBottom Magic,Invisible
Aura2 FlashTop Magic,Invisible
SpiralFireball SpellFirebolt SpellFireHit Fireball Fire
RuneOfFire AddRuneOfFire ProcessRune Rune Physical
RuneOfLight AddRuneOfLight ProcessRune Rune Physical
RuneOfNova AddRuneOfNova ProcessRune Rune Physical
RuneOfImmolation AddRuneOfImmolation ProcessRune Rune Physical
RuneOfStone AddRuneOfStone ProcessRune Rune Physical
BigExplosion AddBigExplosion ProcessBigExplosion BigExplosion BigExplosion BigExplosion Fire
HorkSpawn AddHorkSpawn ProcessHorkSpawn Physical,Invisible
Jester AddJester Physical,Invisible
OpenNest AddOpenNest Physical,Invisible
OrangeFlare AddGenericMagicMissile ProcessGenericProjectile OrangeFlare Magic Blockable
BlueFlare AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
RedFlare AddGenericMagicMissile ProcessGenericProjectile RedFlare Magic Blockable
YellowFlare AddGenericMagicMissile ProcessGenericProjectile YellowFlare Magic Blockable
BlueFlare2 AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
YellowExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit YellowFlareExplosion Physical
RedExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit RedFlareExplosion Physical
BlueExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion Physical
BlueExplosion2 AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion2 Physical
OrangeExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit OrangeFlareExplosion Physical

1 id addFn processFn castSound hitSound graphic flags movementDistribution
67 RedPortal AddRedPortal ProcessRedPortal SpellPortal RedPortal Physical
68 DiabloApocalypseBoom AddApocalypseBoom ProcessApocalypseBoom DiabloApocalypseBoom Physical
69 DiabloApocalypse AddDiabloApocalypse Physical,Invisible
Mana AddMana Physical,Invisible
Magi AddMagi Physical,Invisible
LightningWall AddLightningWall ProcessLightningWall SpellLightningWall SpellLightningHit Lightning Lightning
LightningWallControl AddWallControl ProcessWallControl Lightning Lightning,Invisible
Immolation AddNova ProcessImmolation SpellFirebolt SpellFireHit Fireball Fire
SpectralArrow AddSpectralArrow ProcessSpectralArrow Arrow Physical,Arrow
FireballBow AddImmolation ProcessFireball ShootFireballBow SpellFireHit Fireball Fire Blockable
LightningBow AddLightningBow ProcessLightningBow ShootFireballBow Lightning Lightning,Invisible
ChargedBoltBow AddChargedBoltBow ProcessChargedBolt SpellChargedBolt ChargedBolt Lightning Blockable
HolyBoltBow AddHolyBolt ProcessHolyBolt SpellHolyBolt SpellLightningHit HolyBolt Physical Blockable
Warp AddWarp ProcessTeleport SpellEtherealize Physical,Invisible
Reflect AddReflect SpellManaShield Reflect Physical,Invisible
Berserk AddBerserk Physical,Invisible
RingOfFire AddRingOfFire ProcessRingOfFire FireWall Fire,Invisible
StealPotions AddStealPotions Physical,Invisible
StealMana AddStealMana SpellEnd Physical,Invisible
RingOfLightning Lightning Lightning,Invisible
Search AddSearch ProcessSearch Physical,Invisible
Aura SpellLightningHit FlashBottom Magic,Invisible
Aura2 FlashTop Magic,Invisible
SpiralFireball SpellFirebolt SpellFireHit Fireball Fire
RuneOfFire AddRuneOfFire ProcessRune Rune Physical
RuneOfLight AddRuneOfLight ProcessRune Rune Physical
RuneOfNova AddRuneOfNova ProcessRune Rune Physical
RuneOfImmolation AddRuneOfImmolation ProcessRune Rune Physical
RuneOfStone AddRuneOfStone ProcessRune Rune Physical
BigExplosion AddBigExplosion ProcessBigExplosion BigExplosion BigExplosion BigExplosion Fire
HorkSpawn AddHorkSpawn ProcessHorkSpawn Physical,Invisible
Jester AddJester Physical,Invisible
OpenNest AddOpenNest Physical,Invisible
OrangeFlare AddGenericMagicMissile ProcessGenericProjectile OrangeFlare Magic Blockable
BlueFlare AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
RedFlare AddGenericMagicMissile ProcessGenericProjectile RedFlare Magic Blockable
YellowFlare AddGenericMagicMissile ProcessGenericProjectile YellowFlare Magic Blockable
BlueFlare2 AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
YellowExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit YellowFlareExplosion Physical
RedExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit RedFlareExplosion Physical
BlueExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion Physical
BlueExplosion2 AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion2 Physical
OrangeExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit OrangeFlareExplosion Physical

13
assets/txtdata/missiles/missile_sprites.tsv

@ -45,16 +45,3 @@ BloodStarYellow 96 16 scubmisc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16
BloodStarYellowExplosion 128 32 scbsexpc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BloodStarRed 96 16 scubmisd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
BloodStarRedExplosion 128 32 scbsexpd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
HorkSpawn 96 16 spawns 8 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
Reflect 160 64 reflect 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
OrangeFlare 96 8 ms_ora 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
BlueFlare 96 8 ms_bla 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
RedFlare 96 8 ms_reb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
YellowFlare 96 8 ms_yeb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
Rune 96 8 rglows1 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
YellowFlareExplosion 220 78 ex_yel2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
BlueFlareExplosion 212 86 ex_blu2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
RedFlareExplosion 292 114 ex_red3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
BlueFlare2 96 8 ms_blb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
OrangeFlareExplosion 96 -12 ex_ora1 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
BlueFlareExplosion2 292 114 ex_blu3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7

1 id width width2 name numFrames flags frameDelay frameLength
45 BloodStarYellowExplosion 128 32 scbsexpc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
46 BloodStarRed 96 16 scubmisd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
47 BloodStarRedExplosion 128 32 scbsexpd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
HorkSpawn 96 16 spawns 8 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
Reflect 160 64 reflect 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
OrangeFlare 96 8 ms_ora 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
BlueFlare 96 8 ms_bla 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
RedFlare 96 8 ms_reb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
YellowFlare 96 8 ms_yeb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
Rune 96 8 rglows1 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
YellowFlareExplosion 220 78 ex_yel2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
BlueFlareExplosion 212 86 ex_blu2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
RedFlareExplosion 292 114 ex_red3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
BlueFlare2 96 8 ms_blb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
OrangeFlareExplosion 96 -12 ex_ora1 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
BlueFlareExplosion2 292 114 ex_blu3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7

0
assets/data/inv/objcurs2-widths.txt → mods/Hellfire/data/inv/objcurs2-widths.txt

109
mods/Hellfire/txtdata/missiles/misdat.tsv

@ -0,0 +1,109 @@
id addFn processFn castSound hitSound graphic flags movementDistribution
Arrow AddArrow ProcessArrow Arrow Physical,Arrow Blockable
Firebolt AddFirebolt ProcessGenericProjectile SpellFirebolt SpellFireHit Fireball Fire Blockable
Guardian AddGuardian ProcessGuardian SpellGuardian Guardian Physical
Phasing AddPhasing ProcessTeleport SpellTeleport Physical,Invisible
NovaBall AddNovaBall ProcessNovaBall Lightning Lightning Unblockable
FireWall AddFireWall ProcessFireWall SpellFireWall SpellFireHit FireWall Fire
Fireball AddFireball ProcessFireball SpellFirebolt SpellFireHit Fireball Fire Blockable
LightningControl AddLightningControl ProcessLightningControl Lightning Lightning,Invisible
Lightning AddLightning ProcessLightning SpellLightning SpellLightningHit Lightning Lightning
MagmaBallExplosion AddMissileExplosion ProcessMissileExplosion MagmaBallExplosion Physical
TownPortal AddTownPortal ProcessTownPortal SpellPortal TownPortal Magic
FlashBottom AddFlashBottom ProcessFlashBottom SpellNova SpellLightningHit FlashBottom Magic
FlashTop AddFlashTop ProcessFlashTop FlashTop Magic
ManaShield AddManaShield SpellManaShield ManaShield Magic,Invisible
FlameWave AddFlameWave ProcessFlameWave FireWall Fire Unblockable
ChainLightning AddChainLightning ProcessChainLightning SpellLightning SpellLightningHit Lightning Lightning
ChainBall Lightning Lightning
BloodHit SpellBloodStar SpellBloodStarHit BloodHit Physical
BoneHit BoneHit Physical
MetalHit MetalHit Physical
Rhino AddRhino ProcessRhino Physical Blockable
MagmaBall AddMagmaBall ProcessGenericProjectile MagmaBall Fire Blockable
ThinLightningControl AddLightningControl ProcessLightningControl ThinLightning Lightning,Invisible
ThinLightning AddLightning ProcessLightning ThinLightning Lightning
BloodStar AddGenericMagicMissile ProcessGenericProjectile BloodStar Magic Blockable
BloodStarExplosion AddMissileExplosion ProcessMissileExplosion BloodStarExplosion Magic
Teleport AddTeleport ProcessTeleport SpellElemental Physical,Invisible
FireArrow AddElementalArrow ProcessElementalArrow FireArrow Fire,Arrow Blockable
DoomSerpents SpellDoomSerpents DoomSerpents Magic,Invisible
FireOnly FireWall Fire
StoneCurse AddStoneCurse ProcessStoneCurse SpellStoneCurse Magic,Invisible
BloodRitual Physical
Invisibility SpellInvisibility Physical,Invisible
Golem AddGolem SpellGolem Physical,Invisible
Etherealize SpellEtherealize Etherealize Physical
Spurt Spurt Physical
ApocalypseBoom AddApocalypseBoom ProcessApocalypseBoom ApocalypseBoom Physical
Healing AddHealing Physical,Invisible
FireWallControl AddWallControl ProcessWallControl FireWall Fire,Invisible
Infravision AddInfravision ProcessInfravision SpellInfravision Physical,Invisible
Identify AddIdentify Physical,Invisible
FlameWaveControl AddFlameWaveControl ProcessFlameWaveControl SpellFlameWave FireWall Fire
Nova AddNova ProcessNova SpellNova Lightning Lightning
Rage AddRage ProcessRage Physical,Invisible
Apocalypse AddApocalypse ProcessApocalypse SpellApocalypse ApocalypseBoom Magic
ItemRepair AddItemRepair Physical,Invisible
StaffRecharge AddStaffRecharge Physical,Invisible
TrapDisarm AddTrapDisarm SpellTrapDisarm Physical,Invisible
Inferno AddInferno ProcessInferno SpellInferno Inferno Fire
InfernoControl AddInfernoControl ProcessInfernoControl Fire,Invisible
FireMan Physical Blockable
Krull Krull Fire,Arrow Blockable
ChargedBolt AddChargedBolt ProcessChargedBolt SpellChargedBolt ChargedBolt Lightning Blockable
HolyBolt AddHolyBolt ProcessHolyBolt SpellHolyBolt SpellLightningHit HolyBolt Physical Blockable
Resurrect AddResurrect SpellResurrect Magic,Invisible
Telekinesis AddTelekinesis SpellEtherealize Physical,Invisible
LightningArrow AddElementalArrow ProcessElementalArrow LightningArrow Lightning,Arrow Blockable
Acid AddAcid ProcessGenericProjectile SpellAcid Acid Acid Blockable
AcidSplat AddMissileExplosion ProcessAcidSplate AcidSplat Acid
AcidPuddle AddAcidPuddle ProcessAcidPuddle SpellPuddle AcidPuddle Acid
HealOther AddHealOther Physical,Invisible
Elemental AddElemental ProcessElemental SpellElemental Elemental Fire Unblockable
ResurrectBeam AddResurrectBeam ProcessResurrectBeam Resurrect Physical
BoneSpirit AddBoneSpirit ProcessBoneSpirit SpellBoneSpirit SpellBoneSpiritHit BoneSpirit Magic Blockable
WeaponExplosion AddWeaponExplosion ProcessWeaponExplosion Physical
RedPortal AddRedPortal ProcessRedPortal SpellPortal RedPortal Physical
DiabloApocalypseBoom AddApocalypseBoom ProcessApocalypseBoom DiabloApocalypseBoom Physical
DiabloApocalypse AddDiabloApocalypse Physical,Invisible
Mana AddMana Physical,Invisible
Magi AddMagi Physical,Invisible
LightningWall AddLightningWall ProcessLightningWall SpellLightningWall SpellLightningHit Lightning Lightning
LightningWallControl AddWallControl ProcessWallControl Lightning Lightning,Invisible
Immolation AddNova ProcessImmolation SpellFirebolt SpellFireHit Fireball Fire
SpectralArrow AddSpectralArrow ProcessSpectralArrow Arrow Physical,Arrow
FireballBow AddImmolation ProcessFireball ShootFireballBow SpellFireHit Fireball Fire Blockable
LightningBow AddLightningBow ProcessLightningBow ShootFireballBow Lightning Lightning,Invisible
ChargedBoltBow AddChargedBoltBow ProcessChargedBolt SpellChargedBolt ChargedBolt Lightning Blockable
HolyBoltBow AddHolyBolt ProcessHolyBolt SpellHolyBolt SpellLightningHit HolyBolt Physical Blockable
Warp AddWarp ProcessTeleport SpellEtherealize Physical,Invisible
Reflect AddReflect SpellManaShield Reflect Physical,Invisible
Berserk AddBerserk Physical,Invisible
RingOfFire AddRingOfFire ProcessRingOfFire FireWall Fire,Invisible
StealPotions AddStealPotions Physical,Invisible
StealMana AddStealMana SpellEnd Physical,Invisible
RingOfLightning Lightning Lightning,Invisible
Search AddSearch ProcessSearch Physical,Invisible
Aura SpellLightningHit FlashBottom Magic,Invisible
Aura2 FlashTop Magic,Invisible
SpiralFireball SpellFirebolt SpellFireHit Fireball Fire
RuneOfFire AddRuneOfFire ProcessRune Rune Physical
RuneOfLight AddRuneOfLight ProcessRune Rune Physical
RuneOfNova AddRuneOfNova ProcessRune Rune Physical
RuneOfImmolation AddRuneOfImmolation ProcessRune Rune Physical
RuneOfStone AddRuneOfStone ProcessRune Rune Physical
BigExplosion AddBigExplosion ProcessBigExplosion BigExplosion BigExplosion BigExplosion Fire
HorkSpawn AddHorkSpawn ProcessHorkSpawn Physical,Invisible
Jester AddJester Physical,Invisible
OpenNest AddOpenNest Physical,Invisible
OrangeFlare AddGenericMagicMissile ProcessGenericProjectile OrangeFlare Magic Blockable
BlueFlare AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
RedFlare AddGenericMagicMissile ProcessGenericProjectile RedFlare Magic Blockable
YellowFlare AddGenericMagicMissile ProcessGenericProjectile YellowFlare Magic Blockable
BlueFlare2 AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
YellowExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit YellowFlareExplosion Physical
RedExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit RedFlareExplosion Physical
BlueExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion Physical
BlueExplosion2 AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion2 Physical
OrangeExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit OrangeFlareExplosion Physical
1 id addFn processFn castSound hitSound graphic flags movementDistribution
2 Arrow AddArrow ProcessArrow Arrow Physical,Arrow Blockable
3 Firebolt AddFirebolt ProcessGenericProjectile SpellFirebolt SpellFireHit Fireball Fire Blockable
4 Guardian AddGuardian ProcessGuardian SpellGuardian Guardian Physical
5 Phasing AddPhasing ProcessTeleport SpellTeleport Physical,Invisible
6 NovaBall AddNovaBall ProcessNovaBall Lightning Lightning Unblockable
7 FireWall AddFireWall ProcessFireWall SpellFireWall SpellFireHit FireWall Fire
8 Fireball AddFireball ProcessFireball SpellFirebolt SpellFireHit Fireball Fire Blockable
9 LightningControl AddLightningControl ProcessLightningControl Lightning Lightning,Invisible
10 Lightning AddLightning ProcessLightning SpellLightning SpellLightningHit Lightning Lightning
11 MagmaBallExplosion AddMissileExplosion ProcessMissileExplosion MagmaBallExplosion Physical
12 TownPortal AddTownPortal ProcessTownPortal SpellPortal TownPortal Magic
13 FlashBottom AddFlashBottom ProcessFlashBottom SpellNova SpellLightningHit FlashBottom Magic
14 FlashTop AddFlashTop ProcessFlashTop FlashTop Magic
15 ManaShield AddManaShield SpellManaShield ManaShield Magic,Invisible
16 FlameWave AddFlameWave ProcessFlameWave FireWall Fire Unblockable
17 ChainLightning AddChainLightning ProcessChainLightning SpellLightning SpellLightningHit Lightning Lightning
18 ChainBall Lightning Lightning
19 BloodHit SpellBloodStar SpellBloodStarHit BloodHit Physical
20 BoneHit BoneHit Physical
21 MetalHit MetalHit Physical
22 Rhino AddRhino ProcessRhino Physical Blockable
23 MagmaBall AddMagmaBall ProcessGenericProjectile MagmaBall Fire Blockable
24 ThinLightningControl AddLightningControl ProcessLightningControl ThinLightning Lightning,Invisible
25 ThinLightning AddLightning ProcessLightning ThinLightning Lightning
26 BloodStar AddGenericMagicMissile ProcessGenericProjectile BloodStar Magic Blockable
27 BloodStarExplosion AddMissileExplosion ProcessMissileExplosion BloodStarExplosion Magic
28 Teleport AddTeleport ProcessTeleport SpellElemental Physical,Invisible
29 FireArrow AddElementalArrow ProcessElementalArrow FireArrow Fire,Arrow Blockable
30 DoomSerpents SpellDoomSerpents DoomSerpents Magic,Invisible
31 FireOnly FireWall Fire
32 StoneCurse AddStoneCurse ProcessStoneCurse SpellStoneCurse Magic,Invisible
33 BloodRitual Physical
34 Invisibility SpellInvisibility Physical,Invisible
35 Golem AddGolem SpellGolem Physical,Invisible
36 Etherealize SpellEtherealize Etherealize Physical
37 Spurt Spurt Physical
38 ApocalypseBoom AddApocalypseBoom ProcessApocalypseBoom ApocalypseBoom Physical
39 Healing AddHealing Physical,Invisible
40 FireWallControl AddWallControl ProcessWallControl FireWall Fire,Invisible
41 Infravision AddInfravision ProcessInfravision SpellInfravision Physical,Invisible
42 Identify AddIdentify Physical,Invisible
43 FlameWaveControl AddFlameWaveControl ProcessFlameWaveControl SpellFlameWave FireWall Fire
44 Nova AddNova ProcessNova SpellNova Lightning Lightning
45 Rage AddRage ProcessRage Physical,Invisible
46 Apocalypse AddApocalypse ProcessApocalypse SpellApocalypse ApocalypseBoom Magic
47 ItemRepair AddItemRepair Physical,Invisible
48 StaffRecharge AddStaffRecharge Physical,Invisible
49 TrapDisarm AddTrapDisarm SpellTrapDisarm Physical,Invisible
50 Inferno AddInferno ProcessInferno SpellInferno Inferno Fire
51 InfernoControl AddInfernoControl ProcessInfernoControl Fire,Invisible
52 FireMan Physical Blockable
53 Krull Krull Fire,Arrow Blockable
54 ChargedBolt AddChargedBolt ProcessChargedBolt SpellChargedBolt ChargedBolt Lightning Blockable
55 HolyBolt AddHolyBolt ProcessHolyBolt SpellHolyBolt SpellLightningHit HolyBolt Physical Blockable
56 Resurrect AddResurrect SpellResurrect Magic,Invisible
57 Telekinesis AddTelekinesis SpellEtherealize Physical,Invisible
58 LightningArrow AddElementalArrow ProcessElementalArrow LightningArrow Lightning,Arrow Blockable
59 Acid AddAcid ProcessGenericProjectile SpellAcid Acid Acid Blockable
60 AcidSplat AddMissileExplosion ProcessAcidSplate AcidSplat Acid
61 AcidPuddle AddAcidPuddle ProcessAcidPuddle SpellPuddle AcidPuddle Acid
62 HealOther AddHealOther Physical,Invisible
63 Elemental AddElemental ProcessElemental SpellElemental Elemental Fire Unblockable
64 ResurrectBeam AddResurrectBeam ProcessResurrectBeam Resurrect Physical
65 BoneSpirit AddBoneSpirit ProcessBoneSpirit SpellBoneSpirit SpellBoneSpiritHit BoneSpirit Magic Blockable
66 WeaponExplosion AddWeaponExplosion ProcessWeaponExplosion Physical
67 RedPortal AddRedPortal ProcessRedPortal SpellPortal RedPortal Physical
68 DiabloApocalypseBoom AddApocalypseBoom ProcessApocalypseBoom DiabloApocalypseBoom Physical
69 DiabloApocalypse AddDiabloApocalypse Physical,Invisible
70 Mana AddMana Physical,Invisible
71 Magi AddMagi Physical,Invisible
72 LightningWall AddLightningWall ProcessLightningWall SpellLightningWall SpellLightningHit Lightning Lightning
73 LightningWallControl AddWallControl ProcessWallControl Lightning Lightning,Invisible
74 Immolation AddNova ProcessImmolation SpellFirebolt SpellFireHit Fireball Fire
75 SpectralArrow AddSpectralArrow ProcessSpectralArrow Arrow Physical,Arrow
76 FireballBow AddImmolation ProcessFireball ShootFireballBow SpellFireHit Fireball Fire Blockable
77 LightningBow AddLightningBow ProcessLightningBow ShootFireballBow Lightning Lightning,Invisible
78 ChargedBoltBow AddChargedBoltBow ProcessChargedBolt SpellChargedBolt ChargedBolt Lightning Blockable
79 HolyBoltBow AddHolyBolt ProcessHolyBolt SpellHolyBolt SpellLightningHit HolyBolt Physical Blockable
80 Warp AddWarp ProcessTeleport SpellEtherealize Physical,Invisible
81 Reflect AddReflect SpellManaShield Reflect Physical,Invisible
82 Berserk AddBerserk Physical,Invisible
83 RingOfFire AddRingOfFire ProcessRingOfFire FireWall Fire,Invisible
84 StealPotions AddStealPotions Physical,Invisible
85 StealMana AddStealMana SpellEnd Physical,Invisible
86 RingOfLightning Lightning Lightning,Invisible
87 Search AddSearch ProcessSearch Physical,Invisible
88 Aura SpellLightningHit FlashBottom Magic,Invisible
89 Aura2 FlashTop Magic,Invisible
90 SpiralFireball SpellFirebolt SpellFireHit Fireball Fire
91 RuneOfFire AddRuneOfFire ProcessRune Rune Physical
92 RuneOfLight AddRuneOfLight ProcessRune Rune Physical
93 RuneOfNova AddRuneOfNova ProcessRune Rune Physical
94 RuneOfImmolation AddRuneOfImmolation ProcessRune Rune Physical
95 RuneOfStone AddRuneOfStone ProcessRune Rune Physical
96 BigExplosion AddBigExplosion ProcessBigExplosion BigExplosion BigExplosion BigExplosion Fire
97 HorkSpawn AddHorkSpawn ProcessHorkSpawn Physical,Invisible
98 Jester AddJester Physical,Invisible
99 OpenNest AddOpenNest Physical,Invisible
100 OrangeFlare AddGenericMagicMissile ProcessGenericProjectile OrangeFlare Magic Blockable
101 BlueFlare AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
102 RedFlare AddGenericMagicMissile ProcessGenericProjectile RedFlare Magic Blockable
103 YellowFlare AddGenericMagicMissile ProcessGenericProjectile YellowFlare Magic Blockable
104 BlueFlare2 AddGenericMagicMissile ProcessGenericProjectile BlueFlare2 Magic Blockable
105 YellowExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit YellowFlareExplosion Physical
106 RedExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit RedFlareExplosion Physical
107 BlueExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion Physical
108 BlueExplosion2 AddMissileExplosion ProcessMissileExplosion SpellFireHit BlueFlareExplosion2 Physical
109 OrangeExplosion AddMissileExplosion ProcessMissileExplosion SpellFireHit OrangeFlareExplosion Physical

60
mods/Hellfire/txtdata/missiles/missile_sprites.tsv

@ -0,0 +1,60 @@
id width width2 name numFrames flags frameDelay frameLength
Arrow 96 16 arrows 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
Fireball 96 16 fireba 16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
Guardian 96 16 guard 3 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 15,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0
Lightning 96 16 lghning 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
FireWall 128 32 firewal 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0
MagmaBallExplosion 128 32 magblos 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
TownPortal 96 16 portal 2 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
FlashBottom 160 48 bluexfr 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19
FlashTop 160 48 bluexbk 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19
ManaShield 96 16 manashld 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
BloodHit 96 16 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
BoneHit 128 32 3 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
MetalHit 96 16 3 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
FireArrow 96 16 farrow 16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
DoomSerpents 96 16 doom 9 MonsterOwned 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
Golem 0 0 1 MonsterOwned 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
Spurt 128 32 2 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
ApocalypseBoom 96 16 newexp 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
StoneCurseShatter 128 32 shatter1 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
BigExplosion 160 48 bigexp 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
Inferno 96 16 inferno 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20
ThinLightning 96 16 thinlght 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
BloodStar 128 32 flare 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
BloodStarExplosion 128 32 flareexp 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
MagmaBall 128 32 magball 8 MonsterOwned 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
Krull 96 16 krull 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
ChargedBolt 64 0 miniltng 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
HolyBolt 96 16 holy 16 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
HolyBoltExplosion 160 48 holyexpl 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
LightningArrow 96 16 larrow 16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
FireArrowExplosion 64 0 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
Acid 96 16 acidbf 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
AcidSplat 96 16 acidspla 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
AcidPuddle 96 16 acidpud 2 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Etherealize 96 16 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Elemental 96 16 firerun 8 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
Resurrect 96 16 ressur1 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
BoneSpirit 96 16 sklball 9 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 16,16,16,16,16,16,16,16,8,0,0,0,0,0,0,0
RedPortal 96 16 rportal 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
DiabloApocalypseBoom 160 48 fireplar 1 MonsterOwned 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17
BloodStarBlue 96 16 scubmisb 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
BloodStarBlueExplosion 128 32 scbsexpb 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BloodStarYellow 96 16 scubmisc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
BloodStarYellowExplosion 128 32 scbsexpc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
BloodStarRed 96 16 scubmisd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
BloodStarRedExplosion 128 32 scbsexpd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
HorkSpawn 96 16 spawns 8 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
Reflect 160 64 reflect 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
OrangeFlare 96 8 ms_ora 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
BlueFlare 96 8 ms_bla 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
RedFlare 96 8 ms_reb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
YellowFlare 96 8 ms_yeb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
Rune 96 8 rglows1 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
YellowFlareExplosion 220 78 ex_yel2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
BlueFlareExplosion 212 86 ex_blu2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
RedFlareExplosion 292 114 ex_red3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
BlueFlare2 96 8 ms_blb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
OrangeFlareExplosion 96 -12 ex_ora1 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
BlueFlareExplosion2 292 114 ex_blu3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
1 id width width2 name numFrames flags frameDelay frameLength
2 Arrow 96 16 arrows 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
3 Fireball 96 16 fireba 16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
4 Guardian 96 16 guard 3 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 15,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0
5 Lightning 96 16 lghning 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
6 FireWall 128 32 firewal 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0
7 MagmaBallExplosion 128 32 magblos 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
8 TownPortal 96 16 portal 2 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
9 FlashBottom 160 48 bluexfr 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19
10 FlashTop 160 48 bluexbk 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19
11 ManaShield 96 16 manashld 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
12 BloodHit 96 16 4 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
13 BoneHit 128 32 3 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
14 MetalHit 96 16 3 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
15 FireArrow 96 16 farrow 16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
16 DoomSerpents 96 16 doom 9 MonsterOwned 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
17 Golem 0 0 1 MonsterOwned 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
18 Spurt 128 32 2 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
19 ApocalypseBoom 96 16 newexp 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
20 StoneCurseShatter 128 32 shatter1 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
21 BigExplosion 160 48 bigexp 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
22 Inferno 96 16 inferno 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20
23 ThinLightning 96 16 thinlght 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
24 BloodStar 128 32 flare 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
25 BloodStarExplosion 128 32 flareexp 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
26 MagmaBall 128 32 magball 8 MonsterOwned 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
27 Krull 96 16 krull 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
28 ChargedBolt 64 0 miniltng 1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
29 HolyBolt 96 16 holy 16 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
30 HolyBoltExplosion 160 48 holyexpl 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
31 LightningArrow 96 16 larrow 16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
32 FireArrowExplosion 64 0 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
33 Acid 96 16 acidbf 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
34 AcidSplat 96 16 acidspla 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
35 AcidPuddle 96 16 acidpud 2 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0
36 Etherealize 96 16 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
37 Elemental 96 16 firerun 8 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
38 Resurrect 96 16 ressur1 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
39 BoneSpirit 96 16 sklball 9 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 16,16,16,16,16,16,16,16,8,0,0,0,0,0,0,0
40 RedPortal 96 16 rportal 2 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
41 DiabloApocalypseBoom 160 48 fireplar 1 MonsterOwned 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17
42 BloodStarBlue 96 16 scubmisb 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
43 BloodStarBlueExplosion 128 32 scbsexpb 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
44 BloodStarYellow 96 16 scubmisc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
45 BloodStarYellowExplosion 128 32 scbsexpc 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
46 BloodStarRed 96 16 scubmisd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
47 BloodStarRedExplosion 128 32 scbsexpd 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
48 HorkSpawn 96 16 spawns 8 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
49 Reflect 160 64 reflect 1 NotAnimated 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
50 OrangeFlare 96 8 ms_ora 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
51 BlueFlare 96 8 ms_bla 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
52 RedFlare 96 8 ms_reb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
53 YellowFlare 96 8 ms_yeb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
54 Rune 96 8 rglows1 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
55 YellowFlareExplosion 220 78 ex_yel2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
56 BlueFlareExplosion 212 86 ex_blu2 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
57 RedFlareExplosion 292 114 ex_red3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
58 BlueFlare2 96 8 ms_blb 16 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15
59 OrangeFlareExplosion 96 -12 ex_ora1 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
60 BlueFlareExplosion2 292 114 ex_blu3 1 MonsterOwned 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7

0
assets/ui_art/hf_titlew.clx → mods/Hellfire/ui_art/hf_titlew.clx

0
assets/ui_art/supportw.clx → mods/Hellfire/ui_art/supportw.clx

Loading…
Cancel
Save