Bay 12 Games Forum

Other Projects => Curses => Topic started by: usr_share on April 05, 2013, 05:35:55 am

Title: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: usr_share on April 05, 2013, 05:35:55 am
After seeing references to a Stalinist squad in both dev/ and src/ folders of LCS' SVN tree, I was wondering if there were any other features disabled in the source code of Liberal Crime Squad.

This is by no means a complete list, and

Apparently, there's quite a few:

Political views:

From all the views one can see when searching opinion polls, two of them are commented out:

VIEW_PRISONS and VIEW_POLITICALVIOLENCE.

The first one was supposed to indicate the population's attitude towards prisoner abuse and torture, and the second one is quite directly related to both the LCS and CCS -- whether direct political violence is justified.

Were you surprised, when first playing the game, why even after shooting dozens of Conservatives, the media never turns the squad's attack into an "LCS rampage"? The functionality is in the game, but commented out.

Depending on the amount of political (breaking machinery, releasing files or prisoners...) and violent (assault, murder) crimes, the news could (with a low enough political violence view) turn even a positive attack into a negative rampage.

The other views are only mentioned in the news/ sources:

VIEW_GUNS:

Supposedly, this view would indicate whether the public supports gun control. A negative news article has the title "KILLER STOPPED", while the positive one is titled "SCHOOL SHOOTING". Surprisingly enough, the unused function constructfillerstory() in news/filler.cpp has news articles for some of the views.

The VIEW_GUNS one reports about a Columbine-style school shooting, the VIEW_PRISONS one tells us about a former prisoner's new book, the VIEW_POLITICALVIOLENCE tells us about an owner of an "Un-American" book store who has met with Conservative injustice, the second VIEW_PRISONS one tells about a hostage riot at a prison, and the second VIEW_POLITICALVIOLENCE reports about a hostage crisis perpetrated by a minor crime squad (Stalinist Comrade Squad, Radical Feminist Brigades, 2nd Amendment Society or Anarcho-Fascist Collective).

Activities and skills:

ACTIVITY_STUDY_COOKING and SKILL_COOKING.

This skill would have influenced one thing: how much money would it take to feed the squad (for abandoned facility locations) per month. The better the skill, the less money spent. Eating in apartments or the Homeless Shelter would be free.

Game start options:

The first question ("The day I was born in 1984...") has a commented sixth option:

"F - the United Nations condemned Iraq's use of chemical weapons."

Choosing this option would have added 2 points to the health stat and set the birthday as March 30, 1984.

The joke items for the first question (which were only added as text) are "The anniversary of Hitler's suicide. - SKILL_PISTOL 1 (lol)" and "Indira Gandhi Killed."

Locations:

An arms dealer ("Black Market") would be available in the Outskirts of the City. This area would have been filled with mercenaries, which one could talk to and ask for weapons (just like the gangsters in the crack house).

Crimes:

When gun laws are Elite Liberal, carrying (or using) a gun in public becomes (ostensibly) illegal. However, this is not the case in actual game, where laws for carrying or using illegal weapons are commented out.
Title: Re: Features disabled in LCS' source code.
Post by: Jboy2000000 on April 05, 2013, 06:38:24 am
I like the idea of the new starting options, but the rest of the stuff seems unnecessary. I also think Fox should add more humor and stuff like that Hitler thing, I was talking to a friend off-site about LCS and he thinks, from what I told him, that LCS could use more subtle humor.
Title: Re: Features disabled in LCS' source code.
Post by: Capital Fish on April 05, 2013, 10:01:58 am
The Political Violence issue was only implemented in one version of the game. It was extremely buggy, and was patched out fairly quickly. I actually liked this feature, and wouldn't mind seeing it return in a future version if the flaws and errors were ironed out.

While food at the homeless shelter was free, eating in apartments DID cost money. The cooking skill lessened this amount of money, and also affected the amount of income obtained from selling brownies. It was removed because it was rather pointless.

The Black Market was only intended as a stop-gate measure. Before it was possible to purchase illegal weapons from gangsters and mercenaries, the player had to go to the black market, which was designed as a storefront similar to the pawn shop or department store. I don't think it was ever designed as a site where the squad could walk around and cause trouble. It was no longer needed and removed once the ability to buy weapons from gangsters and mercenaries was coded into the game.
Title: Re: Features disabled in LCS' source code.
Post by: MetalSlimeHunt on April 05, 2013, 10:40:04 am
Were you surprised, when first playing the game, why even after shooting dozens of Conservatives, the media never turns the squad's attack into an "LCS rampage"? The functionality is in the game, but commented out.
This is in. You get a rampage when you alienate the public or everybody at a site, most likely by accidentally killing a moderate or liberal when using firearms.

This is also why the CCS is broken, as they always try to kill everybody during their raids, and thus always get a rampage, turning public opinion liberal.
Title: Re: Features disabled in LCS' source code.
Post by: Jonathan S. Fox on April 06, 2013, 12:20:42 am
Most of the vestigial code in the game is either:

A) Incomplete and wouldn't work properly if turned on, or
B) Features from earlier versions that were cut for various reasons.

The Political Violence issue was only implemented in one version of the game. It was extremely buggy, and was patched out fairly quickly. I actually liked this feature, and wouldn't mind seeing it return in a future version if the flaws and errors were ironed out.

Yeah, the political violence issue was a mess. Fixing it and putting it back in would be harder than it sounds. The real problem wasn't that the code was buggy, at least not in the sense that it did anything unexpected. The code pretty much did what I wrote it to do. It just undermined the core concept of the game by punishing you for killing people. It broke the game, not with crashes, but by making it unfun.

I originally added the political violence mechanic because I think there's fertile ground there for cool gameplay, but that first attempt was decidedly unsuccessful at growing it. All I managed to do was poison the existing crops. A future effort to re-introduce the idea would need to be very careful with the design, so as to avoid making the same mistakes.
Title: Re: Features disabled in LCS' source code.
Post by: KA101 on April 06, 2013, 08:36:33 am
Were you surprised, when first playing the game, why even after shooting dozens of Conservatives, the media never turns the squad's attack into an "LCS rampage"? The functionality is in the game, but commented out.
This is in. You get a rampage when you alienate the public or everybody at a site, most likely by accidentally killing a moderate or liberal when using firearms.

This is also why the CCS is broken, as they always try to kill everybody during their raids, and thus always get a rampage, turning public opinion liberal.
Huh.  I could swear that the mainstream press won't always give the CCS a Rampage--thought it was an active Liberal Guardian that perpetually kept the CCS down.  Understandable that their free-fire non-tactic would Alienate Everyone, though I'd expect that the CCS shooting a Liberal ought to be considered positive-scoring behavior for them, much as a violent LCS shoots Conservatives.
Title: Re: Features disabled in LCS' source code.
Post by: usr_share on April 07, 2013, 07:50:34 am
Oh, then what about the prisons and guns views? Why didn't they make the cut? Especially as there are corresponding issues in the game.
Title: Re: Features disabled in LCS' source code.
Post by: Jonathan S. Fox on April 07, 2013, 05:53:29 pm
The prison location changes based on the police and death penalty laws. Gun control does have a view, it's VIEW_GUNCONTROL. I believe the news stories corresponding to the VIEW_GUNS tag are disabled because they aren't written.
Title: Re: Features disabled in LCS' source code.
Post by: Funk on April 08, 2013, 02:32:16 pm
the illegal weapon crimes where drum out a few years back,due to bugs but i wonder if that can be reinstated now.
 
Title: Re: Features disabled in LCS' source code.
Post by: usr_share on April 10, 2013, 06:59:04 am
As we already have VIEW_GUNCONTROL, I'm surprised VIEW_GUNS articles weren't used in the game.

Right now I'm trying to create a patch that would add the news articles to VIEW_GUNCONTROL (with an original "killer stopped" article) and reintroduce VIEW_PRISONS (shifting Conservative Labor and Liberal Re-education Rehabilitation from the Police Regulation laws to the Prisons law), with all the news articles, too.
Title: Re: Features disabled in LCS' source code.
Post by: usr_share on April 10, 2013, 12:21:48 pm
Here is an example of a "killer stopped" article I wrote spliced from different RL "killer stopped by armed citizen" stories.

The [brackets] indicate words used at C+ free speech laws.

(City, ST) - In a surprising turn, a (mass shooting / [violent rampage]) was prevented by (an armed citizen / an off-duty police officer / a normal citizen).

After opening fire at the (random last name) (Mall / Theater / High School / University), the would-be (mass murderer / [attacker]), (random first and last name), was confronted by an armed citizen, who was later identified as (a different random first and last name).

Variation 1: The citizen pointed the gun (, after which the shooter ([escaped the scene] / committed suicide) instead. / at the shooter, who dropped his weapon and escaped the scene. / , containing the shooter until the police arrived.)

Variation 2: (Mr. / Ms.) (citizen's last name) engaged the shooter in a (firefight, killing / [fight], [stopping]) (him/her) until (he/she) could fire any more shots.

The spokesperson for the local police department said, "We'd have yet another (mass shooting / [violent rampage]), if not for (Mr. / Ms. ) (citizen's last name)'s heroic actions."
Title: Re: Features disabled in LCS' source code.
Post by: Jboy2000000 on April 10, 2013, 01:41:25 pm
I think I can write one for a news paper.

(City, State name) - A (shooting/ [Attack]) occurred at (Random last name.)(High /Middle /Elementary /University.) school
The (Shoot/[Attacker]) was later identified as (Random first and last name.) It started when-

Variation 1: (Shooter name) went to the school with an assault rifle and walked through the front door, and started breaking into classrooms, (viciously murdering/[ending the lives of]) the students and teachers inside. Security guards were not able detain or kill the (shooter/[attacker]) and they escaped.

Variation 2: (Shooter name) snuck a pistol into his classroom, and then shooting his teacher, (blowing her brains onto the white board./[shooting her in the head.]) When other students tried to wrestle the weapon away from him, they were also killed, as well as others that ran into the class room to try and help.

Variation 3: a friend of (shooter name) jokingly said "I hate the others here, I wish we could just (kill them./[end their lives.]" (Shooter name) took it seriously and took his weapon and started to attack everyone."
Title: Re: Features disabled in LCS' source code.
Post by: usr_share on April 10, 2013, 11:12:33 pm
There is actually a positive one:

(Underlined text isn't in the original source code and was inserted by me)

(City, ST) - A student has gone on a (shooting / [violent]) rampage at a local high school. (First and last name), (5 to 18), used a variety of (illegal or highly illegal, depending on gun control policies) weapons to shoot more than a dozen classmates and two teachers at (last name) High School, before (committing suicide / [leaving the scene]). (Student's last name) was considered an outcast among his classmates and teachers.

Though, I think I'll try using your contribution, too.
Title: Re: Features disabled in LCS' source code.
Post by: usr_share on April 19, 2013, 12:30:51 am
Here is the first version of my patch (apply directly to the trunk source code):

http://ompldr.org/vaTU4Nw/prisons_and_guns.patch

Update for SVN rev 640: http://ompldr.org/vaTU4eA/prisons_and_guns.patch

It introduces news articles for the gun control issue, and adds a "Prison Regulation" issue, also with news articles.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jboy2000000 on April 19, 2013, 10:14:31 am
Trunk source code? Do you mean the "Art" file? Or is something in the art file?
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: usr_share on April 19, 2013, 12:46:47 pm
No, I mean the src/ folder.

This patch doesn't modify the art/ folder.

To use this patch on a Linux system, one has to perform the following:

This patch breaks save game compatibility, so be careful!
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jboy2000000 on April 19, 2013, 01:19:48 pm
What about on windows?
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jonathan S. Fox on April 19, 2013, 02:45:34 pm
I cleaned up the whitespace, made a few polish changes of my own, and committed your patch to SVN.

This doesn't just apply to you, but for anyone editing the code, when working on LCS, endeavor to use 3 spaces for indentation rather than TAB characters. Most source code editors have options that allow you to make the tab key insert any amount of spaces rather than an actual tab character. I know 3 spaces is a really unconventional way to indent source code, but it's the convention for the game.

What about on windows?

This type of patch is a patch for the source code, not the game itself. You would need to recompile the game in order to apply the changes. But, this will certainly end up in the next release.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jboy2000000 on April 19, 2013, 02:48:26 pm
Awesome possum. Hey, did you add the news paper that was already in game, or did you add mine?
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jonathan S. Fox on April 19, 2013, 02:52:29 pm
Awesome possum. Hey, did you add the news paper that was already in game, or did you add mine?

Looks like he blended elements of yours into the existing story.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Teh Barple on April 19, 2013, 08:37:38 pm
is this playable?
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: usr_share on April 20, 2013, 12:46:43 am
First of all, I didn't expect this patch to be accepted into the LCS' code. Especially as what it did was (mostly) reintroduce stuff disabled in the game.

Well, I tried to make sure the new prison policy works just like others. It can be influenced by prison raids or prison-related news articles.

I tried to use the torture view and laws as an example to see how they can be changed, and implemented similar checks for prison laws -- that means they should be as playable as any other laws are.

Right now I've discovered that my patch still doesn't allow some modifications to the prisons view (for example, via the Liberal Guardian or media takeover). I'm really sorry for that, so, here follows a fix:

http://ompldr.org/vaTVtZg/prisons_and_guns_fix.patch

It adds a prison documentary to the list of recruit aids (the $50 option), allows Liberal Guardian articles to influence the prison views, lets the squad discuss the prison system's flaws on TV and radio, as well as allows some sleepers to influence the prisons view. Not only that, but police station and intelligence raids now also influence prison views. This seems to finally make it a view as actively modified as any other views in the game.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: usr_share on April 20, 2013, 01:20:11 am
is this playable?

I haven't noticed any serious bugs. While it may be harder to influence prison views and laws right now (before the fix is applied), it is playable.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jonathan S. Fox on April 20, 2013, 01:31:41 am
First of all, I didn't expect this patch to be accepted into the LCS' code. Especially as what it did was (mostly) reintroduce stuff disabled in the game.

Aw, I hate to see good work get swept under the rug.

Well, I tried to make sure the new prison policy works just like others. It can be influenced by prison raids or prison-related news articles.

I tried to use the torture view and laws as an example to see how they can be changed, and implemented similar checks for prison laws -- that means they should be as playable as any other laws are.

Right now I've discovered that my patch still doesn't allow some modifications to the prisons view (for example, via the Liberal Guardian or media takeover). I'm really sorry for that, so, here follows a fix:

http://ompldr.org/vaTVtZg/prisons_and_guns_fix.patch

It adds a prison documentary to the list of recruit aids (the $50 option), allows Liberal Guardian articles to influence the prison views, lets the squad discuss the prison system's flaws on TV and radio, as well as allows some sleepers to influence the prisons view. Not only that, but police station and intelligence raids now also influence prison views. This seems to finally make it a view as actively modified as any other views in the game.

Excellent. Also applied, tested, and committed.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Teh Barple on April 20, 2013, 08:33:15 am
is this playable?

I haven't noticed any serious bugs. While it may be harder to influence prison views and laws right now (before the fix is applied), it is playable.

yes but what do i do from here :3

(http://gyazo.com/141f4ff123b8fd8818c253e908299e5d.png?1366465170)
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: usr_share on April 20, 2013, 09:39:14 am
As the patches have been introduced into the LCS code proper, you don't have to patch the code anymore. To compile LCS on Windows, use the Visual Studio solution or a CodeBlocks project from the workspace folder.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: usr_share on April 24, 2013, 11:41:35 pm
Also, I was browsing miscactions.cpp and found a reference to different squad stances. Apparently, the LCS could fight EVIL anonymously ("anonymous action"), claim themselves as LCS ("claimed action") or even put on the LCS colors -- which would totally eliminate any disguise, but make their actions even more significant (in case of radio/TV takeovers, 3 times more significant).

I wonder what happened to this feature -- was it cut for any reasons or is it just abandoned or unfinished at the moment?
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: seth-- on April 25, 2013, 02:19:12 am
Also, I was browsing miscactions.cpp and found a reference to different squad stances. Apparently, the LCS could fight EVIL anonymously ("anonymous action"), claim themselves as LCS ("claimed action") or even put on the LCS colors -- which would totally eliminate any disguise, but make their actions even more significant (in case of radio/TV takeovers, 3 times more significant).

I wonder what happened to this feature -- was it cut for any reasons or is it just abandoned or unfinished at the moment?
baseactions.cpp has the code to show the change stance text and stealth.cpp has code to not be stealth when wearing the lcs colors
There isn't code to handle the stance change but it should be easy to add

I'm interested too in knowing why it wasn't finished
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Capital Fish on April 25, 2013, 07:51:37 am
Also, I was browsing miscactions.cpp and found a reference to different squad stances. Apparently, the LCS could fight EVIL anonymously ("anonymous action"), claim themselves as LCS ("claimed action") or even put on the LCS colors -- which would totally eliminate any disguise, but make their actions even more significant (in case of radio/TV takeovers, 3 times more significant).

I wonder what happened to this feature -- was it cut for any reasons or is it just abandoned or unfinished at the moment?
baseactions.cpp has the code to show the change stance text and stealth.cpp has code to not be stealth when wearing the lcs colors
There isn't code to handle the stance change but it should be easy to add

I'm interested too in knowing why it wasn't finished

It was only used for one release, and it was very buggy. I'm guessing it made more sense to disable this feature and focus on developing the game in other ways than to wrangle it into working correctly.
Title: Re: The "Prisons and Guns" patch (was: "Features disabled in LCS' source code.")
Post by: Jonathan S. Fox on April 25, 2013, 04:21:04 pm
Also, I was browsing miscactions.cpp and found a reference to different squad stances. Apparently, the LCS could fight EVIL anonymously ("anonymous action"), claim themselves as LCS ("claimed action") or even put on the LCS colors -- which would totally eliminate any disguise, but make their actions even more significant (in case of radio/TV takeovers, 3 times more significant).

I wonder what happened to this feature -- was it cut for any reasons or is it just abandoned or unfinished at the moment?
baseactions.cpp has the code to show the change stance text and stealth.cpp has code to not be stealth when wearing the lcs colors
There isn't code to handle the stance change but it should be easy to add

I'm interested too in knowing why it wasn't finished

It was only used for one release, and it was very buggy. I'm guessing it made more sense to disable this feature and focus on developing the game in other ways than to wrangle it into working correctly.

This was another feature that was finished and in the released game, but while it seemed like a good idea on paper, it didn't actually enhance the game practice, possibly due to the details of how I wrote it. It probably also was buggy, though not in a crash-the-game way, just in the fact that so many things feel like they should be affected by the decision to advertise yourselves as LCS members or not, and it's hard to account for all the things in the game that would be impacted by this.

Instead, the idea of the LCS deciding whether or not to claim an action or act anonymously was abstracted. In the past, picking a single lock in the slums would result in a LCS struck again news story on page whatever. Now you can rob apartments all day without getting a story, even if you cause an alarm in the process. Certain actions are deemed not sufficiently political or dramatic to get into the news cycle, and are only commented on when you do something bigger as well, like shoot a person.