* Simply return the value we need (instead of using a pointer)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1721 4a71c877-e1ca-e34f-864e-861f7616d084
* make definitions of IMAGEHEADER and IMAGEDEF safe for loading on systems with different sizes for datatypes
* Allocate IMAGEDEF in a function of its own: iV_AllocImageFile (uses only one malloc call so we don't need to go and toy with lots free() calls on failure)
* Use PHYSFS_read* functions for endian correctness (rather than the endian_*word stuff)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1719 4a71c877-e1ca-e34f-864e-861f7616d084
* Make sure function overloading by a C++ compiler doesn't cause linker errors by declaring affected functions extern "C"
Patch by Christian Ohm (in message <20070523201048.GF3778@localdomain>);
* applied changes to lib/ivis_common/imdload.c
* brought linker errors to light caused by function overloading
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1695 4a71c877-e1ca-e34f-864e-861f7616d084
It should even render them as floats. I wasn't able to see a difference after modifying some PIE files, though.
This patch is heavily inspired by Watermelon's work. (Namely piefloat.patch)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1681 4a71c877-e1ca-e34f-864e-861f7616d084
- Renamed pie_PNGLoadFile, because I got confused about pie_ vs. iV_ when working on my terrain stuff, and did not fix it when backporting to trunk
- iTexture (now aka iV_Image, s.a.) is given a depth field to enable support for different number of channels. This is required to support RGB only textures (without adding a useless alpha channel) and eg. for greyscale images like heightmaps
- Simplyfied iV_loadImage_PNG (formerly known as pie_PNGLoadFile, s.a.) and also removed lots of seemingly unnecessary conversions
- Converted page-8 from paletted to RGB for simplification. This multiplied the size by about 3x (still < 100kB)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1580 4a71c877-e1ca-e34f-864e-861f7616d084
- Vector2f type which will be needed for texture coordinates
- Output adjustment for pie_AddTexPage
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1550 4a71c877-e1ca-e34f-864e-861f7616d084
- Remove unecessary copying and code duplication from drawTerrainTiles
- Remove more BSP and unused code
- pie_Pagename -> pie_MakeTexPageName
- pie_AddBMPToTexPages -> pie_AddTexPage
- Whitespace and formating
- Fix hardcoded SKY_TEXPAGE id, which depends on the loading order in the wrf file. Changed to string (filename).
- iTexPage.textPage3dfx -> iTexPage.id
- Prevent unecessary texpage switching in pie_DrawTexTriangle
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1548 4a71c877-e1ca-e34f-864e-861f7616d084
unused NOTEXTURE directive. I believe the NOTEXTURE effect can be achieved
simply by not specifying a texture instead in more recent IMD versions.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1545 4a71c877-e1ca-e34f-864e-861f7616d084
more. Remove unused GetLastHashName() and SetLastHashName().
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1544 4a71c877-e1ca-e34f-864e-861f7616d084
* Turn some implicit conversions of void* to something* into an explicit cast
* remove some redundant commented out code
* refactor some error checking code ( was: if (!error) normal exec path; else deal with error; now is: if (error) deal with error; normal exec path )
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1534 4a71c877-e1ca-e34f-864e-861f7616d084
the #define BSPIMD line in lib/ivis_common/ivisdef.h header.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1529 4a71c877-e1ca-e34f-864e-861f7616d084
- Be safer with stringlengths
- Create "page-123" texpages in pie_Pagename(). This code is needed since WZ might have loaded a different variant of a texpage (-urban,-arizona,...) and thus can only find it by the common "page-123" part
- Output filename on errors in in PNG loading
- Be a little bit less forgiving for wrong case
- Convert all TEXTURE references in PIE files to lowercase and replace 'fx`s' with 'fx', also replace 'urban area' and 'bases urban' with just 'urban' to keep consistency
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1505 4a71c877-e1ca-e34f-864e-861f7616d084
* Remove some dead (commented out) & dirty code from multiint.c which used JPEG code (image_load_from_jpg)
* Remove dead (commented out) code from screen.c which used JPEG code (function static GLuint image_create_texture)
* Remove unused backdrop types from pieblitfunc.[ch]
* Convert last JPEG files into PNG, add a "comment" property on those: "All of these are converted from JPEG files, so this is JPEG quality."
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1490 4a71c877-e1ca-e34f-864e-861f7616d084
* change pie_ReloadTexPage to use files instead of memory buffers as well
* change data.c's resource handler mappings to now load some more fileformats directly from file (all that directly or indirectly used to depend upon pie_PNGLoadMem)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1483 4a71c877-e1ca-e34f-864e-861f7616d084
* do the same with pie_ReloadTexPage which calls pie_PNGLoadMem
* char* -> const char* in tex.c
* fix a syntax error from r1481
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1482 4a71c877-e1ca-e34f-864e-861f7616d084
* remove goto, placed the "goto"-code in an inline function instead
* make pie_PNGLoadMem const correct (i.e. take a buffer we don't write to as const char*)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1477 4a71c877-e1ca-e34f-864e-861f7616d084
This patch will create crashes where the code expects FREE to set the pointer to NULL! (Those problems should be fixed anyway.)
The only occassion where I saw this is when quiting a game, so it is not too much of an issue.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1459 4a71c877-e1ca-e34f-864e-861f7616d084
The texture file in PIE files can now be up to MAX_PATH chars long.
- Find the reason for WZ discarding everything after the number in "page-123" styled texture references.
This led to the problem with Grim's mod referencing the skybox texture instead of his own wall texture.
- Beautify some code
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1438 4a71c877-e1ca-e34f-864e-861f7616d084
- Add -Wno-nonnull to debug=strict to make it compile (Remove it from AM_CFLAGS)
- Remove -Wno-unused-label as this warning is not generated anymore
- Fix a "... from incompatible pointer type" warning which led to a lot of strings (and associated functions) in the widget area becoming const
- Maybe found the reason for images in UTF-8 strings
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1405 4a71c877-e1ca-e34f-864e-861f7616d084
* replace all instances of PTRVALID(ptr,size) by (ptr != NULL)
* remove asserts of style ASSERT( x == NULL || x != NULL ) because they would evaluate to true always anyhow and as such wouldn't ever trigger
* remove macros iV_HeapAlloc and iV_HeapFree and replaced them with MALLOC and FREE respectively (that's what they expanded to anyway)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1348 4a71c877-e1ca-e34f-864e-861f7616d084
- Remove unneeded checks from autogen.sh (all of them are also checked in configure.ac)
- Move AM_CPPFLAGS=-$(top_srcdir), which was included in nearly every Makefile, to configure.ac
- Remove -g from CFLAGS for usual builds. This should be set by the buildscripts instead
- Remove CFLAGS_OVERRIDE, which was rendered obsolete by the above change
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1332 4a71c877-e1ca-e34f-864e-861f7616d084
is no longer cleared each frame, but care is taken do draw on the entire screen so that no smearing takes place. This patch gives me about +30 fps.
(from 45 to 75)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1302 4a71c877-e1ca-e34f-864e-861f7616d084
* NULL assignment to a non-pointer -> changed to assignment of 0
* remove unused variables
* remove empty function drawEffects (and a commented out line that called it)
* Fix implicit declaration (of war_GetFog and war_SetFog) by including warzoneconfig.h
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1287 4a71c877-e1ca-e34f-864e-861f7616d084
more cpu time. Buildings have static shadows, the shadows of
components/droids get recomputed every frame. Rain/bullets/other effects
do no longer drop a shadow.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1281 4a71c877-e1ca-e34f-864e-861f7616d084
a texture to replace during game play. The problem is that the
texture counter is reset several times during a campaign, so we
cannot trust it. This should be fixed more thoroughly later, for
now we just check all textures irrespective of the texture counter.
Also improves logging, and fixes a problem that should have made
texture replacements simply not work previously. Thanks to
Gernot Kohlhaas <mr_maniac> for reporting the bug.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1246 4a71c877-e1ca-e34f-864e-861f7616d084
- Vector3i from lib/ivis also used in lib/audio, maybe want to move it to some more generic place?
- Replace iPoint with Vector2i
- Remove additional integer type declarations from pietypes.h
- Rename all iSprite to iTexture
- Various warning fixes: Unsigned/signed comparisons, uninitialized variables, declared but not defined symbols
- Replace DEBUG_BLOCK with DEBUG_MALLOC (it was virtually the same)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1245 4a71c877-e1ca-e34f-864e-861f7616d084
- Replace iBool with BOOL where it was used
- Fix a warning in src/effects.c about validatePie being declared but not defined
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1241 4a71c877-e1ca-e34f-864e-861f7616d084
the sky has been increased to allow easier view of the new skyline.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1179 4a71c877-e1ca-e34f-864e-861f7616d084
for compilers other than gcc. Thanks to devurandom for bringing
this problem to my attention. Also update documentation for
WZ_DECL_DEPRECATED, which had bitrotted.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1149 4a71c877-e1ca-e34f-864e-861f7616d084
unused code. Also add -Wno-unused-label to Makefile.raw builds, too, to
skip the warning generated by flex that we cannot fix.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1148 4a71c877-e1ca-e34f-864e-861f7616d084
debug builds. Hopefully this will not cause too much pain, but
rather increase code quality for the future.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1144 4a71c877-e1ca-e34f-864e-861f7616d084
functions of dubious usefulness. The log calls are still
present, with protos in ivi.h, in case someone wants to
build something better with them.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1128 4a71c877-e1ca-e34f-864e-861f7616d084
- Add 2 new backdrops from Terminator (http://wz2100.net/forum/index.php?topic=109.0)
- Remove unused pal parameter from pie_PNGLoadMem()
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1075 4a71c877-e1ca-e34f-864e-861f7616d084
C macro M_PI (if available, or we will define it on our own in fractions.h).
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@1033 4a71c877-e1ca-e34f-864e-861f7616d084
* moved several #defines to the enums where they belong
* changed some datatypes on declaration
* prepended casts to malloc calls (using typeof() style)
* changed some (void*) casts to (void**) where required
* removed several #defines and there instances and then replaced them with their corresponding values from an enum
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@969 4a71c877-e1ca-e34f-864e-861f7616d084
- removed these functions and all calls to it if REALLY_DEBUG_MALLOC isn't defined, because they don't do anything currently when REALLY_DEBUG_MALLOC isn't defined
- moved the declaration of memRecReport from memint.h to mem.h where it is, together with memMemoryReport, optionally declared depending on REALLY_DEBUG_MALLOC
* fixed yet another set of signed/unsigned errors (src/seqdisp.c & textdraw.c/h)
* removed a cast from char* to char* (that's what I call unnecessary; transforming something into something it already is)
* memory system:
- added some comments to clarify what certain pieces of code actually do
- removed some redundant code (e.g. why would you ever want to overwrite memory to zero just before passing it to free()?)
- made debug-version of free() return immediately when being passed a NULL pointer (i.e. after raising an assert)
- moved some variable declarations down to the first point of usage
- *IMPORTANT*: commented the definition of MEMORY_SET out (line 38 mem.c), this might break code that expects freshly malloc'ed memory to be pre-initialized, if you experience any problems due to commenting this out please say so on the mailinglists!
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@957 4a71c877-e1ca-e34f-864e-861f7616d084
lib/ivis_common/pietypes.h : Add a depth field to bitmap so different bitdepths can be supported
Some minor cleanups (remainders from a failed abitrary-tiles attempt).
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@902 4a71c877-e1ca-e34f-864e-861f7616d084
034 - Reorganized src-warcam.c
036 - Cleanup includes and function declarations
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@884 4a71c877-e1ca-e34f-864e-861f7616d084
- Remove lots of unused functions (Windows/DDraw related)
- Now store the used bitdepth in the config and thus make it configurable without having to modify the sourcecode
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@808 4a71c877-e1ca-e34f-864e-861f7616d084
- Because savegame filenames are converted to lowercase old savegames won't work anymore. You can simply fix that by renaming them to lowercase.
- All unix_path, unix_fopen and PHYSFSEXT_locateCorectCase functions and calls to them have been removed. (So you _will_ notice when a file is not found, at least on Unix systems.)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@776 4a71c877-e1ca-e34f-864e-861f7616d084
- Define WORD and BYTE types to SDL types
- Let SDL handle some more of the win32fixes
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@739 4a71c877-e1ca-e34f-864e-861f7616d084
Mainly explicit casts, some type changes, a few fixes.
We need to have a look if this line creates any problems:
lib/script/interp.c @@ -329,7 +329,7 @@
- if(!RetStackRemember(CurEvent, (ip + 2))) //Remember where to jump back later
+ if(!RetStackRemember(CurEvent, *(ip + 2))) //Remember where to jump back later
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@719 4a71c877-e1ca-e34f-864e-861f7616d084
- Replace every occurence of VOID with void (and LPVOID with void*)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@703 4a71c877-e1ca-e34f-864e-861f7616d084
This seems to also fix the rader flickering without shadows. (Or was this fixed in a previous commit?)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@681 4a71c877-e1ca-e34f-864e-861f7616d084
raise and lower tile height, and use 'k' to flip tiles. You must trash your
keymap again before you can use this.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@667 4a71c877-e1ca-e34f-864e-861f7616d084
netplay.c got a bunch of new LOG_NET debug()s whose effects on performance have not been tested
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@619 4a71c877-e1ca-e34f-864e-861f7616d084
- Simplify definition of ASSERT(). Now is the same for GCC and MSVC.
This may not work on versions older than MSVC 2005. If you experience this, please report it!
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@613 4a71c877-e1ca-e34f-864e-861f7616d084
some things on platforms where 'just char' means unsigned char. Fix lots of
new signedness warnings resulting from that fix (which would have cropped
up on unsigned char platforms anyway). Also implement a small subset of
stdint.h for windows platform in frame.h, hope this does not create any
conflicts. This allows us to use types like uint64_t where relevant.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@569 4a71c877-e1ca-e34f-864e-861f7616d084
more than half the warnings on gcc4, and makes sure we do not
get signedness problems between platforms where char is defined
with different signedness. Also set line-ending properites for
some bison/flex files that did not have it set.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@563 4a71c877-e1ca-e34f-864e-861f7616d084
Uses a config.mk.tmpl file to set system dependend stuff, no bash required.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@490 4a71c877-e1ca-e34f-864e-861f7616d084
- Pointed out other locations where that error could occur (src/data.c, lib/ivis_common/pcx.c)
- Deprecated pie_ReloadTexPage, as it doesn't appear to be used (lib/ivis_opengl/tex.c)
- Made iSprite width and heigth unsigned (lib/ivis_common/pietypes.h)
- Added debugging for MSVC which doesn't understand the DB* redefines (lib/ivis_common/bitimage.c)
- Fixed deprecation for MSVC (lib/framework/macros.h
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@452 4a71c877-e1ca-e34f-864e-861f7616d084
- DB* replaced by debug calls
- Added MSVCRT debugging flags for finding memleaks
- Added points to the TODO
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@450 4a71c877-e1ca-e34f-864e-861f7616d084
This patch includes:
- Strongly modified way of adding mods, maps and addons
- Make nearly everything use PhysFS (just netlog and debug stay)
- Convert several DBERRORs etc. to debug()
The new modloader works like this:
For every mod supplied on the commandline ("-mod") (maximum of MAX_MODS=100) keep it in mind (char * global_mods[]).
After initializing PhysFS do scanDataDirs(), which tries to register all possible paths, global_mods[] and maps with PhysFS. Dont check wether we succeed, only at the very end check if we got a "gamedesc.lev".
When we buildMapList(), mark "gamedesc.lev" as MOD_CAMPAIGN, "addon.lev" and every user supplied map as MOD_MULTIPLAY.
When we loadMods() modify the searchPath according to the supplied mods.
Note: T1 maps like Sk-Rush come from gamedesc.lev, are marked MOD_CAMPAIGN and thus wont load any multiplay_mods[], even if the user starts a multplayer game. Instead those maps are threated as campaignmode and will only load campaign_mods[].
This patch requires the "mp" patches to be either in ProgramDir/mp, in ProgramDir/data/mp or in ProgramDir/mp.wz
This is because one cannot add warzone.wz/mp to the search path if warzone.wz is an archive.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@436 4a71c877-e1ca-e34f-864e-861f7616d084
- Fixed several files for being C89 compatible, so MSVC compiles them. (No variable declarations after function calls allowed.)
- Added function definitions (lib/framework/win32fixes.h) for functions with different names under Win32/Linux. (Aiming at moving all platform specific defines into such headers. Everywhere included frame.h should make this easy.)
- Please take a look at lib/gamelib/audp_parser.y. I had to convert the lowercase token "text" to uppercase "TEXT", so it doesn't collide with msxml.h (mysteriously included by some windows headers).
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@433 4a71c877-e1ca-e34f-864e-861f7616d084
Same as in r431, but now for lib/
- converted the sources in lib/ to use full path includes instead of just the filename.
- marked places where lib/ivis_*implementation* (eg opengl) is needed, because of incomplete lib/ivis_common.
Should improve the understanding of interfaces and code organization.
(Also fixed a double slash (//) include in src/multimenu.c)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@432 4a71c877-e1ca-e34f-864e-861f7616d084
- marked places where lib/ivis_*implementation* (eg opengl) is needed, because of incomplete lib/ivis_common.
Should improve the understanding of interfaces and code organization.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@431 4a71c877-e1ca-e34f-864e-861f7616d084
256 to 512 as requested by Grim. I hope this is sufficient. Not tested.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@429 4a71c877-e1ca-e34f-864e-861f7616d084
- Removed unused/outdated ivis02/Ivis02.dsp/.vcproj and src/mpdpxtra.[ch]
- Replaced src/mplayer.c with a stub, containing only mplayerSubmit()
- Added DEPRECATED warnings
- Added documentation for WZ_DEPRECATED
One commit follows, to finish the move from ivis02/v4101_stub.c to ivis02/v4101.c
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@415 4a71c877-e1ca-e34f-864e-861f7616d084
- Added a WZ_DEPRECATED macro (lib/framework/macros.h) to mark deprecated functions.
(See http://websvn.kde.org/trunk/KDE/kdelibs/kdemacros.h.in?view=markup -> KDE_DEPRECATED for usage.)
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@406 4a71c877-e1ca-e34f-864e-861f7616d084
Also big amount of whitespace changes, sorry for the inconvenience...
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@400 4a71c877-e1ca-e34f-864e-861f7616d084