Commit graph

29 commits

Author SHA1 Message Date
Christoph Oelckers
1e9a65e673 - fixed the player name display.
This was broken by several small unicode-incompatible code fragments.
This commit also removes the input limit for the player name and the savegame description. With multibyte encoding, limiting them to a fixed length did not work right.
Currently these will just overflow the fields if the text becomes too long, this needs some additional work.
2019-05-14 17:19:34 +02:00
ZippeyKeys12
564d0af331 Moved FConfigFile over to FileReader/FileWriter
Don't use new operator, use value instead
2018-08-31 21:04:17 +02:00
Christoph Oelckers
d2beacfc5f - except for DWORD, all homegrown integer types are gone - a handful were left where they represent genuine Windows types. 2017-03-09 19:54:41 +01:00
Christoph Oelckers
ba0f5a3f94 - most WORD and SWORD are gone. 2017-03-08 18:55:55 +01:00
alexey.lysiuk
5d3244c3a7 Fixed minor issues in config file reader
Removed hardcoded values from long lines handling and made sure that pointer to the last character is always initialized
2017-03-05 13:07:51 +02:00
alexey.lysiuk
c03cb2c97a Added support for long lines in config file
Single line key-value pair can now exceed 255 characters
Long path names and additional command line parameters (macOS only) are no longer cut off
2016-12-28 11:38:38 +01:00
Randy Heit
55142078d8 Normalize line endings 2016-03-01 09:47:10 -06:00
Christoph Oelckers
78deb70a00 - fixed: ConfigSections were not properly deallocated 2015-11-25 13:40:18 +01:00
Christoph Oelckers
c584e9ec95 - fixed destructor call of FConfigSection in FConfigFile. 2015-04-06 23:23:50 +02:00
Christoph Oelckers
3114a26bc8 - allow renaming of config sections and added migration code to rename the old autoload sections to the more flexible naming system that's planned. 2015-04-06 11:21:28 +02:00
Christoph Oelckers
cac634567b - use a proper FString to hold the name of config sections instead of a buffer tacked onto the actual structure. This is necessary if we want to be able to rename a section. 2015-04-06 10:51:28 +02:00
Randy Heit
b300cfaf62 Remove old pre-INI config migration code
- As if any of this matters now. It's not the 90s anymore.
2015-04-05 21:56:00 -05:00
Randy Heit
fd7ed2bc25 Undo most of ZzZombo's changes
- "If it ain't broke, don't fix it."
- Some of the changes were downright wrong and some were pointless, so undo
  everything that doesn't look like an actual improvement.
2015-02-08 20:44:18 -06:00
ZzZombo
322742d4b1 - Fixed various instances of unused variables, accessing arrays out of bounds, initialization of non-primitive members in constructor's body, dead code, passing parameters by value instead of reference, usage of uninitialized variables, as reported by cppcheck. 2015-02-07 23:35:23 +08:00
Randy Heit
5e7ee8f33e - Addded support for multi-line values in INI files, so you can't maliciously inject stray
newline characters into the config file using ACS's SetCVarString.

SVN r4326 (trunk)
2013-06-04 02:06:40 +00:00
Randy Heit
ca2cfb803f - Do do not disable config writing before DoGameSetup() (introduced in r3653) if the config file
does not already exist. This way, we can create a default config file without removing anything
  from an existing config file if things go wrong early during setup.

SVN r3737 (trunk)
2012-07-06 02:22:58 +00:00
Randy Heit
d6cd9b430d - Fixed: Do not write the config file if DoGameSetup() has not been called yet.
SVN r3653 (trunk)
2012-05-15 21:47:15 +00:00
Randy Heit
a7e40b56f6 - Fixed: Player names and chat macros that end with incomplete \c escapes now
have those escapes stripped before printing so that they do not merge with
  subsequent text.
- Moved default weapon slot assignments into the player classes.
  Weapon.SlotNumber is now used solely for mods that want to add new weapons
  without completely redoing the player's arsenal. Restored some config-based
  weapon slot customization, though slots are no longer automatically saved
  to the config and section names have changed slightly. However, unlike
  before, config slots are now the definitive word on slot assignments and
  cannot be overridden by any other files loaded.
- Fixed: Several weapons were missing a game filter from their definitions.
- Removed storage of weapon slots in the config so that weapon slots can
  be setup in the weapons themselves. Slots are still configurable, since
  they need to be for KEYCONF to work; any changes simply won't be saved
  when you quit.
- Removed limit on weapon slot sizes.


SVN r1428 (trunk)
2009-02-20 00:53:25 +00:00
Randy Heit
8d9bc8cc67 - Fixed: Keys bound in a custom key section would unbind the key in the
main game section.


SVN r1409 (trunk)
2009-02-07 01:14:36 +00:00
Randy Heit
b90a04f3be How could I have forgotten about fputs?
SVN r1308 (trunk)
2008-12-07 01:50:12 +00:00
Randy Heit
ef3b57fb8f - Moved ExpandEnvVars() from d_main.cpp to cmdlib.cpp.
- AutoExec paths now support the same variable expansion as the search paths.
  Additionally, on Windows, the default autoexec path is now relative to
  $PROGDIR, rather than using a fixed path to the executable's current
  directory.
- All usable Autoload and AutoExec sections are now created at the top of
  the config file along with some brief explanatory notes so they are
  readily visible to anyone who wants to edit them.


SVN r1307 (trunk)
2008-12-07 00:50:04 +00:00
Randy Heit
016ac67376 - Fixed: Thing_SetTranslation still used a 16-bit word to hold the translation.
- Bumped the maximum resolution up to 2560x1600.
- Fixed: DCanvas::DrawTexture() only expanded virtual screen sizes for widescreen
  resolutions but left 5:4 modes alone. This fix neccessitated the addition of
  DTA_Bottom320x200 for the status bar to use so that it could be flush with the
  bottom of the screen rather than sitting slightly above it.
- Fixed: FConfigFile::ReadConfig()'s definition of whitespace was too broad.
- Fixed: Defining custom translation ranges in descending order and/or with gaps
  made for crashes.


SVN r676 (trunk)
2008-01-08 01:08:27 +00:00
Randy Heit
b132575533 - Added a dialog that gives the user the chance to fix things if the config
could not be saved for some reason.
- Added the writeini console command to write the config file, optionally
  specifying a specific file name for it.
- Fixed: "Multiplayer" demos that only had one player were not played back
  properly because the demo playback code only checked the number of players
  to determine if it should be played as a netdemo.


SVN r333 (trunk)
2006-09-20 02:00:19 +00:00
Randy Heit
e2179d5c2d Guess what. It's not 2005 anymore.
SVN r184 (trunk)
2006-06-11 01:37:00 +00:00
Randy Heit
def53bdd5d - Fixed?: WallSpriteColumn apparently needs to set dc_texturefrac. At least
Valgrind seems to say so.
- Fixed: The FWadCollection destructor needs to use free to free the LumpInfo
  and Wads arrays.
- Fixed: The ColorMapKiller needs to use the delete[] form of delete.
- Fixed: FConfigFile::ClearCurrentSection() should be calling the delete[] form
  of delete to free the entry.
- Fixed: FPatchTexture::MakeTexture() does not need to blindly recreate the
  Spans if they already exist.
- Fixed: The FMultiPatchTexture destructor did not call its Unload() method.
- Restored the original padding calculation to FMultiPatchTexture::MakeTexture().
  I believe the Valgrind errors were caused by accessing off the end of the
  screen buffer, not from accessing off the end of a texture.


SVN r98 (trunk)
2006-05-10 03:08:27 +00:00
Randy Heit
df17a60f5d - Fixed: The names in the Depths array in m_options.cpp were never freed.
- Fixed: FDoomEdMap needed a destructor.
- Fixed: Decal animators were never freed.
- Fixed: Colormaps were never freed.
- Fixed: Memory allocated in R_InitTranslationTables() was never freed.
- Fixed: R_InitParticles() allocated way more memory than it needed to. (And the
  particle memory was never freed, either.)
- Fixed: FMetaTable::FreeMeta() should use delete[] to free string metadata.
- Fixed: FConfigFile::ClearCurrentSection() must cast the entry to a char *
  before deleting it, because that's the way it was allocated.
- Fixed definitions of DeadZombieMan and DeadShotgunGuy in doom/deadthings.txt.
  Skip_super resets the dropitem list, so having it after "DropItem None" is
  pointless.
- Fixed: Decorate DropItem information was never freed.
- Fixed: FinishStates() allocated even 0-entry state arrays.
- Fixed: Default actor instances were never freed.
- Fixed: FRandomSoundList never freed its sound list.
- Fixed: Level and cluster strings read from MAPINFO were never freed.
- Fixed: Episode names were never freed.
- Fixed: InverseColormap and GoldColormap were never freed. Since they're always
  allocated, they can just be arrays rather than pointers.
- Fixed: FFont destructor never freed any of the character data or the font's name.
- Fixed: Fonts were not freed at exit.
- Fixed: FStringTable::LoadLanguage() did not call SC_Close().
- Fixed: When using the -iwad parameter, IdentifyVersion() did not release the
  buffer it created to hold the parameter's path.


SVN r88 (trunk)
2006-05-09 03:40:15 +00:00
Randy Heit
abed04ab23 - Updated Italian strings that someone kindly e-mailed to me.
- The CRT no longer detects any memory leaks when I run to the IWAD picker and quit.
- Fixed: The memory used to hold the path to zdoom.wad/.pk3 was not freed if
  the IWAD picker was cancelled.
- Fixed: Some implementations of cvar->GetGenericRep (CVAR_String) returned a 
  statically allocated string and others returned a dynamically allocated string.
  To be consistant, they should all be static.
- Fixed: DObject also has three static TArrays that should not be explicitly
  initialized: Objects, FreeIndices, and ToDestroy.
- Added a new do-nothing constructor for TArray that can be used for BSS objects
  that are manipulated before startup. Specifically, this was added because
  C_AddTabCommand() is called before main, but the TabCommands constructor is
  called after the array already has over 100 entries in it, orphaning everything
  that was already inserted. And since the code is much nicer-looking now, I didn't
  want to revert to the old non-TArray version.
  
  This could also have been used to fix FName, but I consider the current
  implementation to be better than the old one, so I'm leaving it as-is.
- Fixed: Scanned IWAD paths were not freed if you exited without selecting one.
- Fixed: Dynamically allocated cvars were not freed on exit.
- Fixed: FConfigFile's destructor did not free space used for Values.


SVN r82 (trunk)
2006-05-06 23:43:44 +00:00
Randy Heit
ea3b76815d - Removed -bpal parameter. Blood's blood.pal is loaded from blood.rff, and
its tiles are loaded from the same directory.
- RFF files now load their entire directories into the lumplist.
- Added char * and const char * type coversions for FString, so FStrings can be
  freely passed to functions expecting C strings. (Except varargs functions,
  which still require manually fetching the C string out of it.)
- Renamed the name class to FName.
- Renamed the string class to FString to emphasize that it is not std::string.


SVN r74 (trunk)
2006-05-03 22:45:01 +00:00
Randy Heit
cf11cbdb30 Directory restructuring to make it easier to version projects that don't build zdoom.exe.
SVN r4 (trunk)
2006-02-24 04:48:15 +00:00