Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - SlatersQuest

Pages: 1 ... 10 11 [12] 13 14 ... 46
166
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 19, 2018, 07:45:40 am »
Another Bug report, Each time i end up fighting superpowered minions i supervillain sieges and attacks, the game crashes.

This bug has already been found and fixed in the new version.  :)

167
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 13, 2018, 09:00:53 pm »
Out of curiostiy, what is the recommended persuasion skill to recruit the TV founder?

Persuasion is going to be hard - s/he's a high-juice conservative. Recruiting him/her via Persuasion is going to be about as hard as recruiting an Agent. Seduction skill around 10 plus vacations is pretty reliable, though.



And do you intend to add augments to this game as well?

I would like to, but haven't been able to because I haven't had time to refresh what the current base LCS consists of so that I can synch up with it. IsaacG and I tried a couple months ago, but ran into trouble regarding externalizing the save file system to text, and I wanted to add new features (namely, factions, which are mostly implemented, but still need to be playtested). So, ultimately, the answer is "probably, but there are some problems that will need to be solved first, and are still other things higher on the priority list."

168
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 10, 2018, 07:47:16 am »
Also the some of the classes in the university (Computer Science for one) dont work. They dont take money and they dont give skills

Bug found and fixed.


I believe I already fixed the other one, too.

169
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 09, 2018, 08:06:59 pm »
I CAN say maybe at LEAST start by toning down chargen movies, my buddy said he got ten while making a character...

That's already been done.  :P

Keep in mind: you're playing the 1.4x version. I am still working on the 1.5 version, which greatly reduces the number of movies in the game. You'll still get one or two in character creation (probably), but if you do get ten, then the most likely reason is that your computer's random number generation is buggy. The odds of that happening should be about one in a billion.

(Also note that statisticians have noticed that the rand() function in MS Excel on Windows is not a very good RNG, but the rand() function in MS Excel on Mac is at least somewhat better. Both functions use the computer's internal RNG. I use a Mac, code on a Mac, and playtest on a Mac. Because of this it's possible that the Windows port of this game has some issues like this caused by the OS it is being run on. I can't fix the Windows RNG, unfortunately.)

170
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 08, 2018, 01:44:09 pm »
So is the link in the front page the latest version of the mod?

It is the most recent release, but the new version I am working on is updated and improved in a number of ways.


I tried to fire up the mod but was spammed with three movies I could care less about in character generation, instantly turning me off from it.  The only way to turn them off is to, every single time you load the game up, enter a cheat code.  I understand that the maker loves these movies but I am among the group that dislikes them.  I'm just venting here to make me feel better at my thoughts being heard, but please do add an OPTION to disable them instead of a cheat if at all possible.

You know, the way you're describing it, just a couple of keystrokes and you'd be through them, especially in the new version which will have many fewer movies to begin with. You sound like you're going to be annoyed with the messages that the conservatives are about to besiege you, or the news stories that affect public opinion that are already in the base game. I don't feel like it's possible to please you, and all you are doing is complaining, and it's sapping my motivation to add a separate save feature just for you.

171
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 07, 2018, 06:07:44 pm »
Found the problem: I hadn't defined the new member class. I am not familiar with object-oriented code!  :D

172
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 07, 2018, 02:39:57 pm »
Yes, that did work. I do not understand why. Thanks!

Unfortunately, I do want members. Is there a way to put them back in?

173
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 07, 2018, 12:06:57 am »
I've confirmed that it is fread() that is causing the crash, not factionlist[f]. I can strcpy stuff into factionlist[f]->{element} without causing anything.

Does anybody know enough Curses to solve this or do I just have to scrub this feature?

174
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 05, 2018, 10:33:15 pm »
Edit: no I don't see it. What is going on here?

175
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 05, 2018, 10:09:28 pm »
I am encountering a terrible bug. Please see the code below.

Notice that lobbies and factions are defined in almost exactly the same way, and the syntax used for saving and loading them from the save file is likewise identical. However, upon loading the first byte from the line {fread(&factionlist[f]->AbbreviatedName, sizeof(char), CREATURE_NAMELEN, h);}, the game immediately crashes. I cannot understand how this could be crashing.

Does anybody else have any idea of what could be going on here???



In Includes.h
Code: [Select]
class Lobby
{
public:
   char LobbyName[CREATURE_NAMELEN];
   int LobbyCreatures[CREATURENUM];
   int LobbyLaws[LAWNUM];
   
   int spectrum;
   int alignment_max_liberal;
   int alignment_max_conservative;
   int alignment_current;
   int influence;
};

...



class FactionMember
{
public:
   char Name[CREATURE_NAMELEN];
   int alive;
   int gender;
   int competence;
   int stylemoviegenre;
};

class Faction
{
public:
   char AbbreviatedName[CREATURE_NAMELEN];
   char FullName[CREATURE_NAMELEN];
   int FriendList[FACTIONALLIANCENUM];
   int NeutralList[FACTIONALLIANCENUM];
   int EnemyList[FACTIONALLIANCENUM];
   int FactionAlignments[FACTIONALIGNNUM];
   
   int RelevantLaws[LAWNUM];
   int MaxGovernmentLiberalLaws[LAWNUM];
   int MaxGovernmentConservativeLaws[LAWNUM];
   int RelevantViews[VIEWNUM];
   int RelevantLocations[SITENUM];
   int RelevantCrimes[LAWFLAGNUM];
   int RelevantGenres[GENRENUM];
   int RelevantProtagonists[VIEWNUM];
   int RelevantSettings[VIEWNUM];
   int RelevantClubs[ACTIVITYNUM];
   
   int healthmax;
   int healthcurrent;
   int governmentfunded; //1 for yes, 0 for no
   int moviefunded; //-2 for conservative or Stalinist; -1 for conservative; 0 for no; 1 for liberal; 2 for liberal or Stalinist
   int privatefunded; //1 for yes, 0 for no
   int fundscurrent;
   int basestrength;
   int fundingrelevance;
   int baseaggressiveness;
   
   vector<FactionMember *> Members;
};



in saveload.c:
Code: [Select]
      //Lobbies
      int lobbynumber = lobbies.size();
      fwrite(&lobbynumber, sizeof(int), 1, h);
      for (int l = 0; l < lobbynumber; l++)
      {
         fwrite(&lobbies[l]->LobbyName, sizeof(char), CREATURE_NAMELEN, h);
         fwrite(&lobbies[l]->LobbyCreatures, sizeof(int), CREATURENUM, h);
         fwrite(&lobbies[l]->LobbyLaws, sizeof(int), LAWNUM, h);
         fwrite(&lobbies[l]->spectrum, sizeof(int), 1, h);
         fwrite(&lobbies[l]->alignment_max_liberal, sizeof(int), 1, h);
         fwrite(&lobbies[l]->alignment_max_conservative, sizeof(int), 1, h);
         fwrite(&lobbies[l]->alignment_current, sizeof(int), 1, h);
         fwrite(&lobbies[l]->influence, sizeof(int), 1, h);
      }
     
      //Factions
      fwrite(&global_violence_counter, sizeof(int), 1, h); //Number of violent events in the news related to politics
      int factiontotal = factionlist.size();
      fwrite(&factiontotal, sizeof(int), 1, h); //Number of factions
      for (int f = 0; f < factiontotal; f++)
      {
         fwrite(&factionlist[f]->AbbreviatedName, sizeof(char), CREATURE_NAMELEN, h);
         fwrite(&factionlist[f]->FullName, sizeof(char), CREATURE_NAMELEN, h);
         fwrite(&factionlist[f]->FriendList, sizeof(int), FACTIONALLIANCENUM, h);
         fwrite(&factionlist[f]->NeutralList, sizeof(int), FACTIONALLIANCENUM, h);
         fwrite(&factionlist[f]->EnemyList, sizeof(int), FACTIONALLIANCENUM, h);
         fwrite(&factionlist[f]->FactionAlignments, sizeof(int), FACTIONALIGNNUM, h);
         fwrite(&factionlist[f]->RelevantLaws, sizeof(int), LAWNUM, h);
         fwrite(&factionlist[f]->MaxGovernmentLiberalLaws, sizeof(int), LAWNUM, h);
         fwrite(&factionlist[f]->MaxGovernmentConservativeLaws, sizeof(int), LAWNUM, h);
         fwrite(&factionlist[f]->RelevantViews, sizeof(int), VIEWNUM, h);
         fwrite(&factionlist[f]->RelevantLocations, sizeof(int), SITENUM, h);
         fwrite(&factionlist[f]->RelevantCrimes, sizeof(int), LAWFLAGNUM, h);
         fwrite(&factionlist[f]->RelevantGenres, sizeof(int), GENRENUM, h);
         fwrite(&factionlist[f]->RelevantProtagonists, sizeof(int), VIEWNUM, h);
         fwrite(&factionlist[f]->RelevantSettings, sizeof(int), VIEWNUM, h);
         fwrite(&factionlist[f]->RelevantClubs, sizeof(int), ACTIVITYNUM, h);
         
         fwrite(&factionlist[f]->healthmax, sizeof(int), 1, h);
         fwrite(&factionlist[f]->healthcurrent, sizeof(int), 1, h);
         fwrite(&factionlist[f]->governmentfunded, sizeof(int), 1, h);
         fwrite(&factionlist[f]->moviefunded, sizeof(int), 1, h);
         fwrite(&factionlist[f]->privatefunded, sizeof(int), 1, h);
         fwrite(&factionlist[f]->fundscurrent, sizeof(int), 1, h);
         fwrite(&factionlist[f]->basestrength, sizeof(int), 1, h);
         fwrite(&factionlist[f]->fundingrelevance, sizeof(int), 1, h);
         fwrite(&factionlist[f]->baseaggressiveness, sizeof(int), 1, h);
         
         int factionmembers = factionlist[f]->Members.size();
         fwrite(&factionmembers, sizeof(int), 1, h);
         for (int m = 0; m < factionmembers; m++)
         {
            fwrite(&factionlist[f]->Members[m]->Name, sizeof(char), CREATURE_NAMELEN, h);
            fwrite(&factionlist[f]->Members[m]->gender, sizeof(int), 1, h);
            fwrite(&factionlist[f]->Members[m]->competence, sizeof(int), 1, h);
            fwrite(&factionlist[f]->Members[m]->stylemoviegenre, sizeof(int), 1, h);
         }
      }
     
      ...


      //Lobbies
      fread(&dummy, sizeof(int), 1, h);
      lobbies.resize(dummy);
      for (int l = 0; l < len(lobbies); l++)
      {
         lobbies[l] = new Lobby;
         
         fread(&lobbies[l]->LobbyName, sizeof(char), CREATURE_NAMELEN, h);
         fread(&lobbies[l]->LobbyCreatures, sizeof(int), CREATURENUM, h);
         fread(&lobbies[l]->LobbyLaws, sizeof(int), LAWNUM, h);
         fread(&lobbies[l]->spectrum, sizeof(int), 1, h);
         fread(&lobbies[l]->alignment_max_liberal, sizeof(int), 1, h);
         fread(&lobbies[l]->alignment_max_conservative, sizeof(int), 1, h);
         fread(&lobbies[l]->alignment_current, sizeof(int), 1, h);
         fread(&lobbies[l]->influence, sizeof(int), 1, h);
      }
     
      //Factions
      fread(&global_violence_counter, sizeof(int), 1, h); //global violence counter
      fread(&dummy, sizeof(int), 1, h); //Number of factions
      factionlist.resize(dummy);
      for (int f = 0; f < len(factionlist); f++)
      {
         factionlist[f] = new Faction;

         fread(&factionlist[f]->AbbreviatedName, sizeof(char), CREATURE_NAMELEN, h);
         fread(&factionlist[f]->FullName, sizeof(char), CREATURE_NAMELEN, h);
         fread(&factionlist[f]->FriendList, sizeof(int), FACTIONALLIANCENUM, h);
         fread(&factionlist[f]->NeutralList, sizeof(int), FACTIONALLIANCENUM, h);
         fread(&factionlist[f]->EnemyList, sizeof(int), FACTIONALLIANCENUM, h);
         fread(&factionlist[f]->FactionAlignments, sizeof(int), FACTIONALIGNNUM, h);
         fread(&factionlist[f]->RelevantLaws, sizeof(int), LAWNUM, h);
         fread(&factionlist[f]->MaxGovernmentLiberalLaws, sizeof(int), LAWNUM, h);
         fread(&factionlist[f]->MaxGovernmentConservativeLaws, sizeof(int), LAWNUM, h);
         fread(&factionlist[f]->RelevantViews, sizeof(int), VIEWNUM, h);
         fread(&factionlist[f]->RelevantLocations, sizeof(int), SITENUM, h);
         fread(&factionlist[f]->RelevantCrimes, sizeof(int), LAWFLAGNUM, h);
         fread(&factionlist[f]->RelevantGenres, sizeof(int), GENRENUM, h);
         fread(&factionlist[f]->RelevantProtagonists, sizeof(int), VIEWNUM, h);
         fread(&factionlist[f]->RelevantSettings, sizeof(int), VIEWNUM, h);
         fread(&factionlist[f]->RelevantClubs, sizeof(int), ACTIVITYNUM, h);
         
         fread(&factionlist[f]->healthmax, sizeof(int), 1, h);
         fread(&factionlist[f]->healthcurrent, sizeof(int), 1, h);
         fread(&factionlist[f]->governmentfunded, sizeof(int), 1, h);
         fread(&factionlist[f]->moviefunded, sizeof(int), 1, h);
         fread(&factionlist[f]->privatefunded, sizeof(int), 1, h);
         fread(&factionlist[f]->fundscurrent, sizeof(int), 1, h);
         fread(&factionlist[f]->basestrength, sizeof(int), 1, h);
         fread(&factionlist[f]->fundingrelevance, sizeof(int), 1, h);
         fread(&factionlist[f]->baseaggressiveness, sizeof(int), 1, h);
         
         fread(&dummy, sizeof(int), 1, h); //faction members
         factionlist[f]->Members.resize(dummy);
         for (int m = 0; m < factionlist[f]->Members.size(); m++)
         {
            fread(&factionlist[f]->Members[m]->Name, sizeof(char), CREATURE_NAMELEN, h);
            fread(&factionlist[f]->Members[m]->gender, sizeof(int), 1, h);
            fread(&factionlist[f]->Members[m]->competence, sizeof(int), 1, h);
            fread(&factionlist[f]->Members[m]->stylemoviegenre, sizeof(int), 1, h);
         }
      }

176
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 04, 2018, 12:09:17 am »
You will still get tons of movies until I update the game files on DFFD, which I am still working on because I want to be sure that there aren't any more changes that I want to make that will make saves incompatible. Basically, I want version 1.5 to be the last major release, and all post-1.5 versions to be save-compatible with 1.5. I don't want to have to make a 1.6. I am therefore holding off on the release until I'm reasonably confident that it is ready.

177
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: April 01, 2018, 09:52:57 am »
-Fixed the bug causing LCS members to be criminalized for actions at supervillain lairs

-Swapped the locations of trap deployment and supervillain deployment in lairs. Hopefully this will solve the above problem.

-Fixed a bug in the code of saving and loading supervillain status. I am not sure if this is what was causing the problem, but let's hope so.

-Added the cheat command "Disable Movies" that prevents new movies from being inspired (but does not remove existing movies or characters from the system as there are already cheat commands for these)

178
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: March 29, 2018, 08:38:30 pm »
I've just playtested through four years of the LCS sitting around doing nothing, and tweaked the background movie-creation system so that there are about five movies per year. This is if the LCS does nothing, however (and the CCS is either unformed or defeated). LCS and CCS activity will create more movies. This is an intended feature and I will not be changing it.

I've also decided that the next version should include a cheat command that disables movie inspiration. This will prevent any new movies from being inspired. It will not be saved to the save file, so you'll have to re-enter the command if you want to quit the game and restart it, but it will work for as long as the game continues to run. This also won't prevent any existing movies from working normally (although there already is a command to clear them, too). This will enable a player to decide whether to temporarily suspend movie inspiration, but keep any existing movies in play.

*

1. Yes, that's exactly what's happening: the minions don't have a master, and there was actually a deliberate line of code that was designed to cause the game to crash if that happened. There was also a line of code that was supposed to print an error message to the console before crashing, so that you or I would know what bug had caused the crash and so could be easily found and fixed. Unfortunately, that error message was also buggy because this game uses the Curses library instead of the ansi C fprintf(stderr, %s) statement, which meant that it wasn't obvious at first what was causing the bug.  >:(

Also, the code was written to work in multiple-city mode, so it looked for the first supervillain lair in the corresponding city. In multi-city mode, there is only one lair per city, so if minions are spawning in a city, you know that the first lair is going to have a supervillain else minions wouldn't spawn. However, in single-city mode, minions can spawn if the first lair is vacant but the second or third is occupied. What I did to fix it was assume that any unfindable villain is of the "crimelord" type, which is a reasonable fix, but it would still be better if it could find an actual villain.

2. Shutting down a villain lair should require finding and killing the supervillain, though. Have you been able to shut down lairs without killing the supervillain? If so, then that's yet another bug...

179
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: March 29, 2018, 11:00:32 am »
Superminion crash bug fixed.

*sigh* if you really want movies to not be part of the game at all, I suppose I can try to work that in. It will unbalance the game, mind you. The thing is that I like the movies, although there were too many of them in the last release, so I reduced that number.


Edit: multiple date crash bug fixed.

180
Curses / Re: Terra Vitae Mod (version 1.4 released!)
« on: March 29, 2018, 08:31:27 am »
Could you please implement a method to remove movies? There is such a huge amount of movie spam and it doesn't clear the remaining text very well.

Movies can already be removed with the command "Cheat Clear Movies" in the review mode. This will remove all movies from the game (although new movies will continue to spawn).

Pages: 1 ... 10 11 [12] 13 14 ... 46