Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2]

Author Topic: Fixes for Code::Blocks IDE  (Read 8376 times)

Jonathan S. Fox

  • Bay Watcher
    • View Profile
    • http://www.jonathansfox.com/
Re: Fixes for Code::Blocks IDE
« Reply #15 on: August 24, 2013, 11:02:32 pm »

You're doing a lot of awesome stuff with the code, and I don't want to dissuade you from editing boldly, especially since things can always be reverted. However, with regard to the recent work you've been doing with gender code, I strongly favor NOT changing how the gender neutral is displayed, and how "fix gender label" works in the character sheet. I've put a huge amount of thought into the way that system works now, and I want to share the reasoning and thought that went into why it works the way it does now.

Having the "fix gender label" option work so fluidly was the only thing that made me willing to include gender in the game at all. Tarn Adams didn't have it in the game at all, making the entire LCS completely blind to gender and sexual orientation. You could speculate based on names, but that was entirely in your mind, not the game; there was literally no representation of gender under the hood. It was important to me to keep to the spirit of this Elite Liberal approach to gender in the game, so for a long time I resisted any push to add it. Eventually, I did add gender because I saw the opportunity to expose the LCS to sexism through the bouncer at the gentleman's club. In order to maintain the Elite Liberal stance of the game itself, I then proceeded to leave the default "everyone is bisexual" mechanic in place, and allowed you to change the presented gender label of any of your Liberals at will. Even the use of the word "fix" is intended to respect the idea that you aren't even necessarily changing anything about your character; they may have always been Male. You're just correcting the game's error.

Changing this to require a certain level of Liberalism in gay rights laws in order to toggle your gender label seems to break the implicit barrier between the in-game Liberal Reality and Conservative Oppression. You're playing as the Liberal Crime Squad, not the meek moderate team, and you don't need society or the government's approval for your image or your actions. Who cares what the laws say? The only place that Conservative laws should matter at all is in how the world around you reacts to your choices. You could, for example, add a crime attached to breaking gender normative clothing standards. You could make it so certain social actions are more difficult if you can't pass disguise checks when your conservative_gender and liberal_gender aren't in sync. But even in Nightmare Mode, the concept of people challenging Conservative gender standards is still there. The game itself has a chance of spawning high level Conservative Men in male-dominated professions who are actually tagged as women in their gender_conservative stat -- conceived of as brilliant women who transformed their own gender identity and presentation to the world in order to break the glass (or steel) ceiling, or simply transmen who have the disguise skill to avoid being arrested or even suspected of their gender crimes, even as they penetrate the highest echelons of Conservative society.

As far as the display of the player's selection goes, the game's UI is generally unequivocally Elite Liberal in its presentation, when it shows a bias. Disbanding always requires you to type in an Elite Liberal phrase, full health is always described as Liberal, Liberal and Conservative always mean good and bad respectively, Conservatives with high juice are always given disrespectful titles, and so on. Neither social views nor the law change any of this; you're always playing through the green-tinted glasses of the LCS. (Even the pervasive censorship that takes place at C+ free speech is largely dropped in interrogation scenes and other situations where the LCS is free to act freely.) As such, the display of the player's choice should respect that choice, rather than questioning it. I left the asterisk showing a contradiction off because, after some consideration, I decided it downplayed the legitimacy of choices contrary to the one the game gave you to start with (if the game assigns you as Female for your gender_conservative, you can't be Male, always Male*? That doesn't seem right...), and because the player is going to know that they're changing people's gender labels if they do it; you don't actually have to remind them they did so. If it comes up at all, any incongruity will only be brought up in the mouth of Disrespectful Conservatives, not from the UI, which is consummately respectful toward the LCS.

Of the presentation of GENDER_NEUTRAL, the only labels on the list that I think are accurate and respectful enough are androgynous and genderqueer; transgender is inaccurate, and the others are intentionally degrading (ambiguous isn't awful, but it's extremely narrow). I'm aware that not everyone who would disavow Male/Female as a gender label would embrace "Androgynous", but I picked it because it's unlikely to be objectionable to anyone. More aggressive use of Liberal Language, like the label genderqueer and new pronouns, is appropriate to the game's tone but is also very personal. Even within the broad spectrum of activists involved in sexuality and gender issues, I'm not aware of any consensus on universally applicable labels and pronouns, except the concept of respecting an individual's choice of how they wish to present themselves and interact with the world. At least to me, it feels like any choice to universally embrace one set of words to frame things would disenfranchise others. That perception may not be accurate, but it's what informed the current state of the game.
Logged

Liberal Elitist

  • Bay Watcher
  • I'm more liberal than you are!
    • View Profile
    • The Liberal Crime Squad wiki
Re: Fixes for Code::Blocks IDE
« Reply #16 on: August 25, 2013, 09:21:23 am »

OK, I got it. I was mostly thinking this was OK to do based on all the stuff checking if(law[LAW_FREESPEECH]==-2) in the code, and displaying things more Conservatively if that is the law. My idea behind it was that if the Gay Rights law is Arch-Conservative, this would mean that by law, everyone would go by their biological gender they were born with, rather than their gender identity. You know that prior to my changes, Androgynous was used for Liberals who had already joined the LCS, and Ambiguous was used for Creatures you encountered in site mode (which makes sense, since in site mode you also don't know their exact age either, just a rough estimate). Also, I thought that using gender-neutral pronouns when Gay Rights were Elite Liberal ("xe"/"xem"/"xyr") was an excellent, Elite Liberal idea. Of course, since you think the interface should display things in an Elite Liberal manner all the time, I think this would mean we ought to use "Genderqueer" and "xe"/"xem"/"xyr", at least for people who are already LCS members. I don't think that "Androgynous" is a gender label that is commonly embraced by people who reject gender labels (for one thing, it is a term coined by Conservative society to describe people who don't conform to Conservative gender norms). From what I have read, the term "Genderqueer" is more commonly one that they self-identify as (since this term was actively coined by people who reject traditional gender identities). But "Ambiguous" is still a good term to describe Creatures you encounter in site mode that you don't know the gender of yet (since their gender identity is not something they would tell you unless you spoke to them about it, and you don't even know their age yet). Anyway I shall make the game treat gender in an Elite Liberal way according to your advice.

Done in revision 722. Basically everything works the same as prior to revision 720, except "Genderqueer" is used instead of "Androgynous", and "xe"/"xem"/"xyr" is used in place of "they"/"them"/"their" (viewing things from an Elite Liberal perspective as you said).
« Last Edit: August 25, 2013, 11:06:56 am by Liberal Elitist »
Logged
The Liberal Crime Squad wiki is your friend.

Quote from: Lielac
Edit: Figured it out via a little bit of trial and error and oH MY GOD WHAT IS THIS MUSIC WHAT IS THIS MUSIC WHAT THE HECK IS IT SPACEBALLS MUSIC? WHATEVER IT IS IT IS MAGICAL

KA101

  • Bay Watcher
    • View Profile
Re: Fixes for Code::Blocks IDE
« Reply #17 on: October 20, 2013, 07:13:21 pm »

Necro'd to check: is there anything I'd need to do when using Code:Blocks to mod the current version?  May finally be able to add support for Vaults elsewhere, etc.

(And do I need an SVN client, or is there a "source" link somewhere?)

Thanks.
Logged

Liberal Elitist

  • Bay Watcher
  • I'm more liberal than you are!
    • View Profile
    • The Liberal Crime Squad wiki
Re: Fixes for Code::Blocks IDE
« Reply #18 on: October 21, 2013, 04:37:32 pm »

Necro'd to check: is there anything I'd need to do when using Code:Blocks to mod the current version?  May finally be able to add support for Vaults elsewhere, etc.

(And do I need an SVN client, or is there a "source" link somewhere?)

Thanks.

If you use M$ Windows I recommend TortoiseSVN, it seems to be the most popular SVN client, and it's the one I use. TortoiseSVN integrates itself quite nicely into the M$ Windows operating system, so much so that the idea of porting it to Linux or Macs is utterly ridiculous.

By Vaults, you must mean Bank Vaults... or equivalent things like the Armory at the Military Base or the Safe at the CEO House... things that have stuff in them when you open them up but you have to crack a lock first. I think modding that requires you to edit both the source code AND files in the art directory, if you want to add more things like that.

Oh and you DON'T actually need an SVN client to download the source code, no, not at all, downloading it is quite easy. Here is the "source" link right here, just click here and you get the latest source code.

Oh yes, and as for using it with Code::Blocks, well all the revisions made by me (yetisyny on SourceForge) have been ones that compile on Code::Blocks quite easily (earlier there were many compiler warnings but no errors, now the code has been cleaned up so it doesn't have any warnings OR errors at all).

Revision 732 broke compatibility with Code::Blocks... temporarily. It added 3 new files to the source code, which were not added to the Code::Blocks project file. However I fixed this in revision 738 (currently the most recent revision), so ever since revision 738, it has worked in Code::Blocks. It was also not working in Code::Blocks prior to revision 694. I fixed it in revision 694 and it worked fine in Code::Blocks up thru revision 731, then revisions 732-737 don't work in Code::Blocks, now revision 738 DOES work in Code::Blocks again.

Anyway, umm, you know the art directory, it's in another directory from the source code (in the src directory). And the Code::Blocks project is in the workspaces directory, the filename is game.cbp (cbp stands for Code::Blocks project). So modding stuff that's in the art files, that is NOT done using Code::Blocks, you do that by opening the files in the art directory in a text editor (at least with the XML files... some of those files I am not entirely sure what format they are in or how to edit them). Modding stuff in the source code, that stuff you DO do in Code::Blocks.

Oh, and Code::Blocks is an IDE, not a compiler, although you can get it bundled with a compiler called TDM-GCC. But it works with other compilers such as Microsoft Visual C++ too. But Microsoft Visual C++ has its own IDE, so usually people using Microsoft Visual C++ as their compiler also use it for their IDE too.

So currently the Code::Blocks project is set up to compile things using TDM-GCC (which is actually the same thing as MinGW, the only difference is MinGW is a whole bunch of different files you all have to download and install separately, while TDM-GCC is a distribution/distro of MinGW that all comes in a single easy-to-install download that is MUCH easier to install and work with than regular MinGW). So this means if you installed MinGW yourself (a rather difficult task), that would also work with the current project, since MinGW and TDM-GCC are basically the same thing, TDM-GCC is just an easy-to-install MinGW distro, kinda like how Linux has distros. Except, hilariously enough, MinGW is ITSELF a distro of GCC, the GNU Compiler Collection, ported to Windows. So TDM-GCC is a distro of a distro. Kind of like Ubuntu being a distro of Debian which is a distro of Linux.

Anyway, the current Code::Blocks project is set up to compile the game for 32-bit Windows on x86 chips using MinGW, TDM-GCC, or some other MinGW / GCC distro for Windows (but NOT Cygwin, Cygwin is different from MinGW). And in revision 738, I've also improved the compiler optimizations, so the game will run faster (now it does floating-point operations much faster by using the SSE instruction set, available in all Intel chips since the first Pentium 3 and all AMD chips since the first Athlon... I highly doubt anyone is using an older CPU than that, but if you are, you can easily change the GCC compiler options back to the default of working with everything all the way back to a 386 by editing the Code::Blocks project file).

The Code::Blocks project is not set up to compile for Linux or Mac OS X, or for non-x86 chips; however, this can also easily be changed by changing compiler/linker settings in the Code::Blocks project file, if you know what you're doing. Usually on Linux and Mac OS X people use command-line utilities and Makefiles to compile, link, and build the executables from the source code. The Makefile, therefore, is set up for UNIX-style operating systems. And if you use Cygwin instead of MinGW, you also would compile using the Makefile, rather than compiling inside Code::Blocks. The Makefile is also designed to use the GCC compiler, just like the Code::Blocks project.

There is also a M$ Visual C++ project to compile the game on Windows using the M$ Visual C++ compiler... this is what Jonathan S. Fox uses to compile the official releases, although I'm not sure which version of M$ Visual C++ he uses. The oldest version still commonly used is M$ Visual C++ v6.0, while the newest version is M$ Visual C++ v12.0, more commonly known as M$ Visual C++ 2013. He's probably using one of the ones in between, like v7.1 (2003), v8.0 (2005), v9.0 (2008), v10.0 (2010), or v11.0 (2012). But not v7.0 (2002), because that version was a total dud, very buggy, they had to release v7.1 a year later to fix it, since v7.0 was nowhere near as good as v6.0 and it took M$ awhile to get things back on track after that. The latest M$ Visual C++ v12.0 (2013) is mostly aimed at making programs for Windows RT 8.1's Metro interface and its release was timed to happen at the same time as Windows 8.1. The best version for making a simple Win32 Console Application like Liberal Crime Squad is probably M$ Visual C++ 7.1 (2003), since it's the last version whose executables work on Windows 95 and Windows NT 4.0. M$ Visual C++ 8.0 (2005) is the last version whose executables work on Windows 98 and Windows ME. And M$ Visual C++ 9.0 (2008) is the last version whose executables work on Windows 2000. Version 10.0 (2010) and newer produce executables that only run on Windows XP and later. Once version 13 comes out, it'll probably drop support for Windows XP, and version 14 will probably drop support for Windows Vista. Anyway the latest version of Visual C++ is 12.0 (2013) which came out just a few days ago. I recently tried installing M$ Visual C++ 6.0 but after I installed it, trying to add files to the project crashed the program, plus it couldn't open the project/workspace files for LCS. So for this project you probably need version 7.1 (2003) or later if you want it to work properly. The advantage to version 6.0 of Visual C++ is it links to MSVCRT.DLL which is included in Windows, so you don't need to install a runtime, that's why I was trying to install that version and get it to work. MinGW / TDM-GCC also links to MSVCRT.DLL too, just like Visual C++ 6.0, so its executables don't require a runtime either. Versions 7.0 (2002) and later of M$ Visual C++ ALL have corresponding redistributable runtimes that you need to install to run executables compiled on them, at least if you use the default settings, although probably there is a workaround for this, but I am not sure yet, need to do more research.

Well that is probably WAY too much information, sorry if I confused you with all of it. The main things are, you can download the source code here and you can get an SVN client for Windows here (TortoiseSVN), an SVN client for Mac OS X here (Xcode), and an SVN client for Linux here (Apache Subversion). And the SVN client is completely unnecessary if you are not a coder on the main project and are not going to be modifying the main project. If you are just going to download the source code and make a mod you don't need it, you just need the link to download the source code.
« Last Edit: October 21, 2013, 04:48:21 pm by Liberal Elitist »
Logged
The Liberal Crime Squad wiki is your friend.

Quote from: Lielac
Edit: Figured it out via a little bit of trial and error and oH MY GOD WHAT IS THIS MUSIC WHAT IS THIS MUSIC WHAT THE HECK IS IT SPACEBALLS MUSIC? WHATEVER IT IS IT IS MAGICAL

KA101

  • Bay Watcher
    • View Profile
Re: Fixes for Code::Blocks IDE
« Reply #19 on: October 21, 2013, 05:07:18 pm »

Well, "Live Liberal or Die Hard" belongs in mainline, IMO, but that's not my call to make.

MinGW threw a malware warning when I tried grabbing it the second time, so I opted for Code:Blocks.  I know it's an IDE, and last I knew it included a compiler.

So yeah, last paragraph first next time, but thanks for the info.  ;-)
Logged

Liberal Elitist

  • Bay Watcher
  • I'm more liberal than you are!
    • View Profile
    • The Liberal Crime Squad wiki
Re: Fixes for Code::Blocks IDE
« Reply #20 on: October 21, 2013, 09:05:14 pm »

Well, "Live Liberal or Die Hard" belongs in mainline, IMO, but that's not my call to make.

MinGW threw a malware warning when I tried grabbing it the second time, so I opted for Code:Blocks.  I know it's an IDE, and last I knew it included a compiler.

So yeah, last paragraph first next time, but thanks for the info.  ;-)

You shouldn't have tried downloading MinGW, since, like I said, it's kind of a mess and hard to install and doesn't work as well with Code::Blocks as TDM-GCC. TDM-GCC is the compiler to use with Code::Blocks, not MinGW. It's the one that comes bundled with Code::Blocks, and the same dude who packages the TDM-GCC distro of MinGW also works on Code::Blocks. TDM-GCC and Code::Blocks are both specifically designed to be used with each other.

If you think your changes belong in the mainline code, you oughta get TortoiseSVN and have Jonathan S. Fox add you to the list of developers who have write access to the SourceForge project. You could also post your changes here on the forums and ask someone else to integrate them into the source code for ya, but that's a lil' less efficient. :P Then again, setting up TortoiseSVN for this project (which uses svn+ssh:// as the protocol when you update code), well it's a lil' bit of a headache at first to set up for use with this project but not THAT hard, and once you have it set up correctly it's really really easy to use.

One last thing, I'm still experimenting with trying to get some version of M$ Visual Studio installed and working properly on my computer. Still experimenting with M$ Visual Studio version 6.0. If I can't get it installed correctly, next I'm gonna try version 7.1 (Visual Studio .NET 2003). Let's just say that using BitTorrent to get old software that is no longer supported by Microsoft doesn't always work correctly, regardless of how many people rate the torrent with 5 out of 5 stars and give it good reviews, because those people who gave the torrent good reviews are all using it for Visual Basic 6.0 and not Visual C++ 6.0... plus the installation process has many errors and requires you to restart the computer 3 or 4 times and involves running ancient 16-bit programs during the install process, and even after all that, the stupid M$ Visual C++ 6.0 program doesn't even work and crashes whenever you try to add a file to a project, or do any number of other things, rendering it entirely useless as an Integrated Development Environment and a waste of hard disk space. That's not even mentioning all the garbage M$ Visual Studio 6.0 installs on the hard drive like an ancient version of the Microsoft Virtual Machine for Java that has more holes than Swiss cheese and makes your computer vulnerable to hackers, and doesn't uninstall when you uninstall M$ Visual Studio, but just stays on your hard drive, leaving you vulnerable and insecure. Or the fact that M$ Visual Studio 6.0 replaces many of your system files with older versions full of security holes, and then it stays like that after you uninstall it. So ya, torrents aren't the best way to get software that actually works correctly... remember that, kids. Free, open-source software like Code::Blocks, TDM-GCC, Dwarf Fortress, and Liberal Crime Squad: that's what we should all use. 8)
Logged
The Liberal Crime Squad wiki is your friend.

Quote from: Lielac
Edit: Figured it out via a little bit of trial and error and oH MY GOD WHAT IS THIS MUSIC WHAT IS THIS MUSIC WHAT THE HECK IS IT SPACEBALLS MUSIC? WHATEVER IT IS IT IS MAGICAL

Carlos Gustavos

  • Bay Watcher
    • View Profile
Re: Fixes for Code::Blocks IDE
« Reply #21 on: October 22, 2013, 07:13:51 am »

I believe the Visual C++ project file is for the 2010 version.
Logged

Liberal Elitist

  • Bay Watcher
  • I'm more liberal than you are!
    • View Profile
    • The Liberal Crime Squad wiki
Re: Fixes for Code::Blocks IDE
« Reply #22 on: October 22, 2013, 07:27:35 pm »

I believe the Visual C++ project file is for the 2010 version.

Ah, good, thanks for telling me that. ;) Unfortunately I'm running out of hard disk space now so I don't have room for Visual Studio right now but I'll bear in mind that this is for Visual Studio 2010, thanks!
Logged
The Liberal Crime Squad wiki is your friend.

Quote from: Lielac
Edit: Figured it out via a little bit of trial and error and oH MY GOD WHAT IS THIS MUSIC WHAT IS THIS MUSIC WHAT THE HECK IS IT SPACEBALLS MUSIC? WHATEVER IT IS IT IS MAGICAL
Pages: 1 [2]