Other Projects > Curses

LCS 4.12.21 Now With A Save Editor

(1/27) > >>

Fixed bug where gentleman's clubs didn't have names.
Added more automated tests.
All other changes should not be visible to players.

1.7 MB
68 MB (includes source)

Edit: 2018-07-09
Nightly Build 4.12.22 (source not included)
049) If Only One NPC can be Kidnapped, that NPC is Targetted for Kidnapping without Notifying the Player There is Only One
Fixed.  The player now gets a warning if there are multiple targets to kidnap, but only one can be kidnapped.
Fixed minor error with GitHub repo.

2 MB
64 MB

Savefile Editor!
Uncomment the line VERBOSESAVEFILES (uncommented by default)

If you save your game, in addition to the save.dat file, there will be a save.verbose file.
This file contains plaintext data to be easily edited by any text editor, like notepad.
You can't change everything, just:
LCS Fund level
Police and other faction HEAT level
Political alignment of all senators, congressmen, and supreme court justices,
Names of supreme court justices and executives,
Public view on all issues (0 ~ 100)
All laws
Names and codenames for all LCS members
All attributes, skills, and outstanding crimes for all LCS members
And a few other things I included without understanding

Those who'd like to help debug can look at the Unstable build.
Available on github.
Updated to 4.12.21
Older Changes:

--- Code: ---
Edit: 2018-05-15
LocationsPool.cpp is now about 3_000 lines, and the LocationsPool class possesses over 60 methods.  They have gone from part of the solution to being part of the problem.
This is especially the case with regards to siege.cpp, as my coding became increasingly redundant as fatigue wore on.

Added new key 'J' to reload weapons, but only weapons that are empty.  Cross #013 off the list!
Not the best, but it does the job.

1.7 MB
67 MB

Edit 2018-05-01 (later)
I LOVE Solid State Drives (and staying at a friend's house who has a fast internet connection).  This was the fastest clean install I've ever had.  Everything up and running within four hours.  All that's left is downloading my Steam library.  (If this seems an extreme reaction to virus contamination, in all honesty I've been planning to do this for a while.  Just been waiting for an excuse.)

Virus on computer.
Got new computer.

Installed new copy of Visual Studio 2017.
Compiled LCS from source.

2 MB

67 MB

Edit 2018-05-01
Son of a [pejorative].
My computer has a virus.

Evidence suggests the binaries of LCS are compromised.
Downloads of LCS are on hold until I can reinstall my operating system.
Edit 2018-04-29
Fixed the "unable to reassign squads to apartment safehouses without disbanding" bug.  Weird little bug, that.
67 MB
1.7 MB

Edit 2018-04-19
Fixed the "unable to loot corpses" bug.
Also extracted just about every string in LCS.  We are a stone's throw from being able to translate LCS to other languages without recompiling.
1.7 MB
67 MB


Edit: 2018-04-10
Fixed the "crashing during recruitment" bug.  I added a diagnostic tool that will detect it immediately if it ever comes back.  (If for some reason you want to use the diagnostic tool, press 'D' on the title screen to run the test.  Then press any key about sixty times until it goes through all the tests.)

67 MB

1.6 MB  (Keeps getting smaller.  Not specifically intended, but not a bad thing.)

I also shifted around internal code a bunch.

Edit: 2018-03-14
Fixed the ever evasive "stats changing during interrogation" bug.
Turns out it had nothing to do with interrogation.
Creature::get_attribute() modifies the attribute based on Juice and Age.  Not knowing about the Age part of the equation, age modifiers were being reapplied to creatures every time the game was saved.  (Ironically not including "Health", because Age modifiers for Health are aplied elsewhere in the code).

Also, shifted around some of the internal code.  Removing more usage of the keyword "extern", and all non-standard header files are now #included using relative paths instead of absolute paths.  (i.e. replacing #include <header.h> with #include "header.h" or #include "../header.h" etc.)  I'm excited about this change because it makes LCS easier to compile using g++, and once I can get LCS to compile with g++ I won't need to use Visual Studio anymore and I will finally be able to actually help other people compile the damn thing.
2 MB
70 MB

Edit: 2018-03-06:
Bugs Fixed.  University classes now work appropriately.
2 MB
67 MB
LCS 4.12.14 is STABLE

Edit: 2018-02-24
4.12.6~4.12.11 are now considered unstable.  4.12.6 is probably fine, but I don't want to risk it.  4.12.7 introduced some game breaking bugs, and it might be a while before they get fixed.
In the meanwhile, 4.12.5, with the Save File Editor is considered Stable.  Non-english characters, namely "" do not display correctly, as that was fixed in 4.12.8&9, which was a smaller problem than 4.12.7 introduced.

67 MB

or a 6 MB download

4.12.13 (fixed the add.cpp bug, still haven't fixed the activities.cpp bug)
[s]Download from DFFD

Edit: 2018-02-23

Fixed bug where files would not be deleted upon defeat.  (This bug was introduced when the "defeat deletes all savefiles" bug was fixed)
Fixed typo where "# - Check status of liberal" contained unusual characters.  It seems the txt file had some sort of metadata.  I do not know how to detect if this problem exists elsewhere.
Fixed bug where "V - Evade" appeared on the wrong line.

People are still mentioning recruitment bugs and sitemode crashing.  I'm going to investigate.  4.12.12 is to be a stable release.

Changed one single line of code.  Fixes the known cause of random crashing while recruiting (where single lines are used in place of double lines.)
Full 67 MB
Reduced, 2MB


Five more characters added to usable characters for names.


Also, I've ported the multiple save option to Terra Vitae 1.42


And the minimally invasive changed files to allow this functionality.

Edit: 2018 - 01 - 31
Fixed bug that prevented certain characters from being allowed in names.
These six characters.

2 MB Download
Full 68 MB Download

Edit: 2018 - 01 - 23
More creature characteristics moved to XML for easier modding

<seethroughstealth> (interval)
how difficult it is to fool through stealth
default: 3
<seethroughdisguise> (interval)
how difficult it is to fool through disguise
default: 3

<talkreceptive>(0 or 1)
is receptive to talking and persuasion
<kidnap_resistant>(0 or 1)
is especially difficult to kidnap
<reports_to_police>(0 or 1)
reports to the police if attempted to datenap
No more Secret Service hard coded to see through disguises, now it's in the XML.

Full 68 MB

4 MB, no music

Edit: 2018 - 01 - 10
Full 68 MB

MIDI  music 6 MB

More game gripes fixed.

added a suspicion check for weapons that have been "holstered", meaning weapons carried in the squad inventory, but not equipped
Since weapons (including ammunition) cannot be taken to a site without being equipped to a squad member, this was an exploit (Unimplemented)
TODO Weapon concealment overhaul

3) WIP
Car chase unit quantity is now based on logarithmic progression instead of linear.  Tweaking is likely necessary, but still.

Mistakenly attacking innocents: if skill is 8 or higher, there is no chance of mistakenly hitting innocents (except when used as a human shield).  Skill 4 for melee.

26) DONE
Able to repair clothing in bulk

34) DONE
Most skills are now trainable in the university district.

Now anyone can customize pickup lines, the battle text, name generation, all sorts of stuff (that has no direct impact on gameplay).  Also newgame, which has impact on gameplay.
Also, Updated so 4.12.4 is on GitHub

1)Car crash victims teleporting to safe houses. FIXED


40) Expensive Suits are valid disguises in the Bank, but not Expensive Dresses. FIXED
new customization file: debug_defines.txt
This allows for debug options to be enabled or disabled without recompiling.  Most of the debug options only affect new games, which could instead be placed in founderQuestions.txt, but that's because the debug options were there before I was.
These are the big ones, I feel.
// Enemies don't attack
// Interrogation always enlightens
// Show die rolls, 100% accurate poll numbers

(includes source and a Visual Studio 2015 workspace)

Custom NewGame!  You know those ten questions at gamestart?  Change them however the heck you want, mostly.  Change the starting year, founder's birthday, all stats and skills, allows adding, subtracting, and resetting, money, juice (just not armor).  All just by changing art/newgame/founderQuestions.txt and no recompiling.

Custom Pickup Lines!  All 47 vanilla pickup lines have been extracted to an external file that is scanned on execution.  Swap out the old easily, or make new ones entirely.
Additionally, most battle messages, courtroom dialogue, and about every string that's selected at random in the vanilla game is customizable without recompiling.
Also, news articles!  There, there are a lot of those.  Roughly a third of the data files correspond to those...

The 196 files of custom strings have been sorted into 15 folders placed inside the art folder.
.\defaultSlogans.txt (change the default slogans, but that only activates once in 20 anyway)
activities (mostly have to do with personnel descriptions and hotwiring cars)
chase (mostly car chase stuff)
creature (customize the names of Hicks and CCS members!)
fight (combat messages, mostly)
interrogation (almost everything pertaining to interrogation)
justice (juries and prison life)
locations (customize the names of everything from vegan co-ops to forced labor camps)
majorevent (news article customization)
names (all names generated at random, including city names)
siege (Mostly random generated news programs, which was in siege.cpp for some reason)
talk (pickup lines, conversion attempts, bank robbing)
talk_combat (mostly hostage stuff)
titlescreen (the quote that generates on game start)

And the coup de grace:
Customize the questions at the start of the game!  Allow anywhere from 1~10 answers per question, with as many in game impacts (mostly stat and skill for the founder, but also starting funds, birthday, even starting year!)  Allow as many questions as you want.

Forked from (and attempting to merge to):
4.10 (Augmentation)
github /Kamal-Sadek/Liberal-Crime-Squad

2016 11 27 Update:
I added in easy_compile mode.  A while back I removed the externs.h and includes.h files, well easy_compile mode adds them back in, for all but about ten files that I changed too much to easily reinclude it.
Thus on a file by file basis, most of my changes can be migrated to 4.10 (Augmentation) without issue.

2016 12 29 Update:
I rolled back my changes.  All that "enumerators are our friends" and "externs.h is the enemy", while true in spirit, isn't worth introducing a whole mess of bugs to implement.  The only changes now are the ones that I keep talking about.  Custom pickup lines, custom newgame, custom cities, custom names, etc.  Customize to your heart's content without needing to recompile!

--- End code ---

Does this mean that I'll finally be able to do things like editing combat messages, car chase messages, nerf Secret Service agents always seeing through disguises, etc without having to recompile, and that there will be less hardcoded stuff in LCS? Having creature weapons be hardcoded because that creature is affected by weapon laws when you could just do <WeaponAtLawX>WEAPON_SEMIPISTOL_9MM</WeaponAtLawX> instead(rather than hardcoding) is frustrating.

Plans for the Future (At Least, The Complaint List):

001) Car Crash Victims Teleport to Safehouse

002) Liberal Weapons cause Instant Alerts unless "Holstered"

003) Car Chases with Four Vehicles, Six Conservatives Each, Inevitable Total Party Kill

004) Lack of Stealth Options to Defeat CCS, Casualties Inevitable

005) Automatic Target System Priotitizes Enemies who are "Dangerous" even once Badly Wounded

006) Mistakenly Attacking Innocents during Stealth Melee

007) No "Less than Lethal" Option in Combat

008) Repeated Raids even when Police Station is Closed

009) Lack of Raids outside Police and CCS

010) RNG-based Datenapping, Failure even if Heavy Armor with a M249

011) "Wasted Potential" with CCS Safehouse, Unused Alternate Entrance (CCS Boss should Attempt Escape)

012) Skill Grinding, Skill Progression set to "Fast" does not affect Most Skills, Including Seduction

013) No Individual Reloading Outside Combat, Especially Problematic when using Thrown Weapons alongside Assault Rifles

014) Assault Rifles are the only Weapons worth using (Knives should Penetrate Armor)

015) SMGs are useless, Inferior to ARs in all ways, and yet have their own Skill

016) Prostitution leads to Automatic Arrest, Unlike Drugs and Graffiti

017) "Protects Against Kidnapping" for Syringe and other Light Weapons, Prevents Kidnapping even against Assault Rifles

018) Compiling the Game is Impossible for anyone without an Enormous Investment in Time, and Specialized Training

019) Gun Control Legislation does not significantly impact Gun Ownership, especially at Arch-Conservative Levels

020) Seeing Through Disguises is Hard-Coded

021) M249s are too Rare, especially Compared to Assault Rifles

022) Cannot Visit Closed Locations, even though the Court System still Functions when Closed

023) Unable to Surrender to Police after First Turn, even if Non-Violent

024) Police Respond with Lethal Force at All Times, no matter how Inappropriate

025) Police Negotiators Turn Liberals into Conservatives, despite being Moderates Themselves

026) Inability to Repair Clothing in Bulk

027) Inability to Sell or otherwise Dispose of Damaged Clothes

028) Computer and Writing Skills largely usable Only for Illegal Activities, no Profitable Legal Options

029) No "Assign All Clips to Liberal" Option, instead needing to Press "9" every Time, Also Add/Remove All Liberals from a Vehicle

030) CCS Only Capable of Violence, Absense of Conservative Guardian or Equivalence

031) Broken "No Reply" option with Hostages, Should at Least take you back to Encounter Screen

032) Overpowered Violence, Destruction  never leads to Escalation or Balkanizing, no Martial Law

033) Juice can be Boosted Most Reliably through Violence, no Other way to Reach the 1000 Cap as Quickly

034) Limited University Skills

035) Lack of Harassment on Approaching Site, only when Leaving

036) "X gasps and soils the floor" Appears too Often

037) Stalinist Comrade Squad will Never be Finished

038) Lack of Weapon Variety for Enemies

039) Judicial Nerf makes it Impossible to Avoid Execution, Even with Sleeper Judge, Jury, and Master Attorney

040) "Snowballing", the Game gets Progressively Easier, no Late-Game Threat outside CCS

041) Judicial System is Largely Unaffected by Laws, Should scale from Salem-Witch-Trials to (Effective) Rehabilitation First with Kind Words

042) Unarmed Stealth Kills count as Murder, while Knife Stealth Kills do not

043) Expensive Suits are Valid Disguises at Bank, but not Expensive Dresses

044) Teaching Skill is Useless

045) Death Squad Uniforms are Unarmored

046) Augmentation is Unfinished, namely Some are Free, and Exactly one has a Max-Age Requirement

047) Weaponry Sets based on Gun Control is Hard-Coded, Making New Weapons Unable to Spawn with Existing Creatures

048) CCS Should be Buffed, Possibly with a "Confederate Gazette" and CCS Hackers to Publish LCS Membership

049) If Only One NPC can be Kidnapped, that NPC is Targetted for Kidnapping without Notifying the Player There is Only One

050) Criminal Investigations lack Substance

051) Police Stations are Responsible for Military and Army Raids, Rather than Army Bases

052) Unarmed Persuasion Attacks Drain Juice, but do not Grant Juice to the User

053) Attacks on the Firemen HQ Should Raise Free Speech Support

054) Firemen HQ and Other Locations are Inaccessible Except at Specific Policy Levels

055) Specialized Death Messages e.g. Burning to Death

This is an interesting idea, but will be a great deal of work and require some tricky design decisions. For example, there are a lot of instances where the in-game text refers to the character, the location, the laws, etc. For example, when you refer to the courthouse, is it the courthouse (death penalty laws L+ to C) or the Hall of Ultimate Judgement (C+)?


--- Quote from: SlatersQuest on July 23, 2016, 11:45:15 pm ---This is an interesting idea, but will be a great deal of work and require some tricky design decisions. For example, there are a lot of instances where the in-game text refers to the character, the location, the laws, etc. For example, when you refer to the courthouse, is it the courthouse (death penalty laws L+ to C) or the Hall of Ultimate Judgement (C+)?

--- End quote ---

This is part of why I dropped it last time, as I didn't have the expertise necessary to answer that.
Currently I plan to have it use either XML or custom escape characters.  I'm leaning towards the latter, like every time the string "\S" appears, the game will replace it with the LCS slogan.
There are definitely specific instances of greater difficulty, such as the various words that get replaced when free speech is especially low, or like the CEO code that rejects seduction attempts based on the seducer's gender.  These especially specific cases are where I expect to find the greatest difficulty, but many of the simpler cases can be transferred to external files first.

Long term there are quite a few changes, but right now I'm focusing on custom messages that rely on little or no internal logic, such as the pickup lines (excluding when CEOs are involved).


[0] Message Index

[#] Next page

Go to full version