Giter Site home page Giter Site logo

alamoengine-tools / modcheck Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 1.0 381 KB

The ModCheck tool for Empire at War and Forces of Corruption allows mod makers to check their mods for errors, like missing text entries, references or corrupted models or map files. The tool was originally developed by Mike Lankamp and is currently maintined by the contributers to the Alamo Engine Tools GitHub organisation.

License: MIT License

C++ 23.81% C 58.93% Makefile 0.48% HTML 14.98% Roff 0.58% Lua 1.22%
star-wars star-wars-empire-at-war star-wars-forces-of-corruption petroglyph glyphx alamo

modcheck's Issues

ModIntegrity 2.0.0 marks all .LUA as an unexpected end of file when compiled/not included in the mod

Data\Scripts\AI\GENERATEMAGICGROUNDDEFENSE.LUA: unexpected end of file in GENERATEMAGICGROUNDDEFENSE.LUA
Data\Scripts\AI\GENERATEMAGICGROUNDDEFENSEEASY.LUA: unexpected end of file in GENERATEMAGICGROUNDDEFENSEEASY.LUA
Data\Scripts\AI\GENERATEMAGICGROUNDDEFENSEHARD.LUA: unexpected end of file in GENERATEMAGICGROUNDDEFENSEHARD.LUA
Data\Scripts\AI\GENERATEMAGICGROUNDSTRUCTURE.LUA: unexpected end of file in GENERATEMAGICGROUNDSTRUCTURE.LUA
Data\Scripts\AI\GENERATEMAGICSPACEDEFENSE.LUA: unexpected end of file in GENERATEMAGICSPACEDEFENSE.LUA
Data\Scripts\AI\GENERATEMAGICSPACEDEFENSEEASY.LUA: unexpected end of file in GENERATEMAGICSPACEDEFENSEEASY.LUA
Data\Scripts\AI\GENERATEMAGICSPACEDEFENSEHARD.LUA: unexpected end of file in GENERATEMAGICSPACEDEFENSEHARD.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_EXPANSIONGENERIC_BUILDBUNKER.LUA: unexpected end of file in AI_PLAN_EXPANSIONGENERIC_BUILDBUNKER.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_EXPANSIONGENERIC_BUILDMDUITEM.LUA: unexpected end of file in AI_PLAN_EXPANSIONGENERIC_BUILDMDUITEM.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_EXPANSIONGENERIC_DEPLOYTROOPTRANSPORTS.LUA: unexpected end of file in AI_PLAN_EXPANSIONGENERIC_DEPLOYTROOPTRANSPORTS.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_EXPANSIONGENERIC_GARRISONTARGET.LUA: unexpected end of file in AI_PLAN_EXPANSIONGENERIC_GARRISONTARGET.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_EXPANSIONGENERIC_ORBITALBOMBARDMENT.LUA: unexpected end of file in AI_PLAN_EXPANSIONGENERIC_ORBITALBOMBARDMENT.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_UNDERWORLD_MINESTRUCTURE.LUA: unexpected end of file in AI_PLAN_UNDERWORLD_MINESTRUCTURE.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_UNDERWORLD_REMOTEBOMBFRIENDLYUNIT.LUA: unexpected end of file in AI_PLAN_UNDERWORLD_REMOTEBOMBFRIENDLYUNIT.LUA
Data\Scripts\AI\LANDMODE\AI_PLAN_UNDERWORLD_TYBERMANAGERLAND.LUA: unexpected end of file in AI_PLAN_UNDERWORLD_TYBERMANAGERLAND.LUA

This is just an example of the error. When I integrity checked my mod, these all came up (despite the mod having none of these files). This includes duplicate errors (I imagine if used on multiple units?):

Data\Scripts\GameObject\Palpatine.lua: unexpected end of file in Palpatine.lua
Data\Scripts\GameObject\BobaFettPlan.lua: unexpected end of file in BobaFettPlan.lua
Data\Scripts\GameObject\ObjectScript_PowerToShields.lua: unexpected end of file in ObjectScript_PowerToShields.lua
Data\Scripts\GameObject\ObjectScript_PowerToShields.lua: unexpected end of file in ObjectScript_PowerToShields.lua
Data\Scripts\GameObject\Interdictor.lua: unexpected end of file in Interdictor.lua
Data\Scripts\GameObject\ObjectScript_MissileShield.lua: unexpected end of file in ObjectScript_MissileShield.lua

Just to note, the scripts I did include in my mod aren't listed as unexpectedly ending.

ModIntegrity 2.0.0 marks the four new patch maps as "bad map files"

Error:

Bad map file: Data\Art\Maps\_MP_LAND_DATHOMIR.TED
Bad map file: Data\Art\Maps\_MP_LAND_HONOGHR.TED
Bad map file: Data\Art\Maps\_MP_LAND_UTAPAU.TED
Bad map file: Data\Art\Maps\_MP_SPACE_DATHOMIR.TED

Explanation on what was changed with these maps:

Utapau and Land Dathomir were recreated by Divine_ in the Community Discord. They were unused maps in the files, and
remade for the update. Space Dathomir and Land Honoghr got name changes in the listing due to there supposedly being an
error in their names and were reincluded.

Utapau was discarded and a new one was put in its place. This one was made 'from scratch' using a copied version of the singleplayer map. Dathomir was just edited and rebalanced directly from the files (even though it is a copy of the singleplayer map too) with FoC markers, etc.

Space Dathomir got a name change from "Dathomir Hostility" to "Darkness Over Dathomir" (with Land Dathomir assuming the name "Dathomir Hostility") and Land Honoghr got a name change from "I HONOGHR" to "Honoghr Corruption." These were the only known included map changes.

Support for the GUI Commandbar Expansion

Specification

[EAW/FOC] Added additional hidden build slots to tactical and galactic build bars that can be unlocked to increase the max number of units/buildings that can be displayed at one time.

Open Questions

  • What new (required) tags exist?
  • Documentations of how to work with the expansion.

Finalize/Release Legacy Version

The "legacy" version of the ModCheck application compatible with non-Steam versions of the game needs to be packaged and released.

  • Readme
  • License
  • Release

Update Checks to Accomodate the Latest Steam Update

Excerpts from the official changelog:


[FOC] Added OR operator support for Required_Special_Structures field per community request. Details are below:

<Required_Special_Structures>
UNIT1 | UNIT2 UNIT3 | UNIT4
</Required_Special_Structures>

Note: This was implemented with the '|'(OR) behaving as you would expect as an OR relationship between operators. Everything else is as it worked before, being treated as an AND. In the above example, you would need to have already built UNIT1 OR UNIT2 AND UNIT3 OR UNIT4 to satisfy the requirement.
NOTE for the AI: It will probably only ever build the first thing in an OR situation. Therefore, with the above it would only try to build UNIT1 AND UNIT3 to satisfy the requirement.


[FOC] Added support for a line which lets you specify the faction, so it's not just limited to the first three. (ie: <Story_Name>NewFaction, Story_Plots_Sandbox_56_NewFaction.xml </Story_Name>)


[EAW/FOC] Corrected AI_Combat_Power for space invasions being ignored on special structures such as the Hypervelocity Gun and Ion Cannon which can damage units in space. This problem also seemed to ignore any secondary space structures. The AI would previously not send enough units to account for a defense with one of these structures. Additional details:

  • Space special structures are now calculated as part of the SpaceTotalUnnormalized token. We modified the Garrison_Category to be a Space_Or_Garrison_Category. So something that can be garrisoned should also not be a special space structure.
  • The XML tags <Garrison_Category> and <Space_Or_Garrison_Category> are actually the same. You can specify either one, but should only specify one, and they'll work the same for units and structures that can be garrisoned.
  • For land-based space units and space special structures you can use the <Space_Or_Garrison_Category> as a secondary category mask for the AI to determine what to bring to counter. Since Structure is not one of the matching categories in PGAICommands.lua::Set_Contrast_Values(). If <Space_Or_Garrison_Category> is empty it will default to Capital for land-based space units and space special structures.

[EAW/FOC] Added additional hidden build slots to tactical and galactic build bars that can be unlocked to increase the max number of units/buildings that can be displayed at one time.

Support/Update/Add Checks for the Correct Usage of the Garrison_Category and Space_Or_Garrison_Category Tags

Specification

[EAW/FOC] Corrected AI_Combat_Power for space invasions being ignored on special structures such as the Hypervelocity Gun and Ion Cannon which can damage units in space. This problem also seemed to ignore any secondary space structures. The AI would previously not send enough units to account for a defense with one of these structures. Additional details:

  • Space special structures are now calculated as part of the SpaceTotalUnnormalized token. We modified the Garrison_Category to be a Space_Or_Garrison_Category. So something that can be garrisoned should also not be a special space structure.
  • The XML tags <Garrison_Category> and <Space_Or_Garrison_Category> are actually the same. You can specify either one, but should only specify one, and they'll work the same for units and structures that can be garrisoned.
  • For land-based space units and space special structures you can use the <Space_Or_Garrison_Category> as a secondary category mask for the AI to determine what to bring to counter. Since Structure is not one of the matching categories in PGAICommands.lua::Set_Contrast_Values(). If <Space_Or_Garrison_Category> is empty it will default to Capital for land-based space units and space special structures.

Support the <Story_Name> Tag for Arbitrary Factions

Specification

[FOC] Added support for a line which lets you specify the faction, so it's not just limited to the first three. (ie: <Story_Name>NewFaction, Story_Plots_Sandbox_56_NewFaction.xml </Story_Name>)

Open Questions

  • Is the change also applicable to EAW, or is it actually FOC-only?

Support for the OR operator for Required_Special_Structures

Specification

[FOC] Added OR operator support for Required_Special_Structures field per community request. Details are below:

<Required_Special_Structures>
UNIT1 | UNIT2 UNIT3 | UNIT4
</Required_Special_Structures>

Note: This was implemented with the '|'(OR) behaving as you would expect as an OR relationship between operators. Everything else is as it worked before, being treated as an AND. In the above example, you would need to have already built UNIT1 OR UNIT2 AND UNIT3 OR UNIT4 to satisfy the requirement.
NOTE for the AI: It will probably only ever build the first thing in an OR situation. Therefore, with the above it would only try to build UNIT1 AND UNIT3 to satisfy the requirement.


Open Questions

  • Is the change also applicable to EAW, or is it actually FOC-only?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.