Commit Graph

2129 Commits

Author SHA1 Message Date
pyrolink
2358540305 Added heal
This was SVN commit r3220.
2005-12-10 19:38:42 +00:00
pyrolink
bed6abeed5 Finally did the heal thing.
This was SVN commit r3219.
2005-12-10 19:37:52 +00:00
7e6d38314d allocators: fix OverrunProtector - avoid crash at exit if the object was never actually used
lib: add display_msgw which is a wrapper around the sys_display_msgw
impl and takes care of translating text
lib_errors: codes are now an enum (this will allow a special return type
and make documentation much more clear); codes are defined in the
header, not from lib.h
wsdl: resolve todo comment

This was SVN commit r3217.
2005-12-10 07:04:31 +00:00
2eac4af3a4 Added unit IDs, so Atlas can store references to units without just using pointers and without crashing.
This was SVN commit r3214.
2005-12-09 03:15:00 +00:00
bd2c1d73a3 Terrain, Interact, LOSManager, Atlas, etc: Fixed some off-by-one and off-by-FLT_EPSILON problems with objects near/off the edge of the map. Also changed some model.GetBounds().GetCentre() into model.GetTransform().GetTranslation() to fix off-by-centre-of-bounds-minus-position problems. Thus, you can no longer make units in Atlas disappear off the edge and never be seen or selected again. Also changed out-of-bounds LOS value to make them visible if they somehow escape anyway. Also fixed out-of-bounds access of terrain heightmap.
MapReader: Tidied usage of Xeromyces.
Projectile: Avoided warnings.

This was SVN commit r3212.
2005-12-09 01:08:08 +00:00
12b8dd2d9b Fixed warning when exiting from non-Atlas game
This was SVN commit r3211.
2005-12-08 20:25:17 +00:00
c16227df06 slight tweak to asm code - improve alignment and remove temp R..R/W..W memcpy interleaving
This was SVN commit r3209.
2005-12-08 17:26:08 +00:00
895d717c06 This was SVN commit r3208. 2005-12-08 03:33:14 +00:00
5250814397 Atlas: Fixed entities-don't-move-when-terrain-is-altered. Unbroke and fixed entity memory management. Added flatten tool. Added object movement/rotation/deletion tool - but not yet finished, since 'redo' usually crashes (for known reasons).
This was SVN commit r3207.
2005-12-08 02:50:55 +00:00
b242eafd02 various small fixes; some changes as in previous rev (which was only the files in lib/)
split a part of win.cpp up into wsysdep
GameSetup: bugfix for incorrect window title text

This was SVN commit r3204.
2005-12-07 03:44:17 +00:00
e2f25f4598 - self test: rename stuff to SELF_TEST*; add provision for delayed all-at-once self tests (allows for init before the test and makes measuring elapsed time easier)
- config: add CONFIG_TRACE
- display_error_impl->sys_display_error
- cleaned up sysdep; add sys_ prefix everywhere and document everything
- add to vfs_load dox
- cursor: sys_cursor_load -> sys_cursor_create. sysdep code is no longer
dependent on tex; instead of calling tex_load, the caller passes a BGRA
texture in.
memcpy: huge kick in the pants for accompanying paper; now even faster.
- on_each_cpu -> sys_on_each_cpu (removed manager function also)
- wsdl: explain PeekMessage CPU usage issue

This was SVN commit r3203.
2005-12-07 03:38:39 +00:00
a5d1968a8c ProfileViewer: Fixed char* vs wchar_t*.
Quaternion: Removed operator- since it doesn't seem geometrically
sensible for rotation-quaternions. Added ToAxisAngle but don't actually
use it anywhere.
GameView: Changed unit-view to look slightly more correct.

This was SVN commit r3201.
2005-12-06 20:16:50 +00:00
pyrolink
300ff4578b Added camera enhancements and cinematic suppport
This was SVN commit r3199.
2005-12-06 06:58:30 +00:00
pyrolink
8199091425 Incomplete cinematic functions. (Are committed to keep CGameView compatible, which uses an instance of CCinemaManager). Atlas components will be committed once Atlas is up and running.
This was SVN commit r3198.
2005-12-06 06:52:24 +00:00
pyrolink
483917fbc8 Quaternion subtraction.
This was SVN commit r3197.
2005-12-06 06:49:55 +00:00
pyrolink
609140b7b5 Hotkeys for camera enhancements.
This was SVN commit r3196.
2005-12-06 06:47:17 +00:00
pyrolink
1c656821bf Changes for camera enhancements (first person view and following a unit).
This was SVN commit r3195.
2005-12-06 06:46:16 +00:00
pyrolink
f174796540 Added fresnel effect for water.
This was SVN commit r3194.
2005-12-06 06:42:49 +00:00
pyrolink
74f8d8c213 Bug correction for heal action.
This was SVN commit r3193.
2005-12-06 06:41:47 +00:00
9b1da42678 Atlas: Better toolbar.
This was SVN commit r3192.
2005-12-05 20:17:10 +00:00
036a8d3246 Atlas: Toolbar.
This was SVN commit r3190.
2005-12-03 06:35:31 +00:00
547293ee49 Atlas: Vaguely usable object placement code. Bug fixes.
This was SVN commit r3186.
2005-12-02 21:08:10 +00:00
0a252de08c Atlas: Incomplete object (entity+actor) placement code. +/- keys for zooming.
This was SVN commit r3184.
2005-12-02 07:37:57 +00:00
8f976e4b8a glext_funcs: Added gDEBugger-specific extension.
Interact: Answered comment. Fixed calculation of map edge.
Renderer: Fixed unloading of water textures. Removed some redundant
state-setting in water renderer. Avoided potential problems with
floating point accuracy.

This was SVN commit r3182.
2005-12-02 02:08:26 +00:00
67e253544d Fixed ScEd loading/saving
This was SVN commit r3176.
2005-11-26 23:12:32 +00:00
78c835a590 Put opened drop-down lists on top of most other GUI controls (by increasing their z value)
This was SVN commit r3175.
2005-11-26 22:42:51 +00:00
9be309d4c7 editordata: use tex_load to load the heightmap - don't need the ogl_tex functionality and this avoids the POT check (which would fail)
ogl_tex: remove POT-check-avoidance hack

This was SVN commit r3166.
2005-11-20 14:35:52 +00:00
b417951ef8 (Oops, committed inconsistent code)
This was SVN commit r3164.
2005-11-20 00:52:41 +00:00
41ae0f9a44 Various hacks to make ScEd work. Should be removed once ScEd is no longer needed.
This was SVN commit r3162.
2005-11-20 00:41:45 +00:00
efbe061214 rename lib/errors.* to lib/lib_errors.* due to conflict with ps/errors.*
also add sys_error_description_r backend for unix

This was SVN commit r3160.
2005-11-19 22:59:16 +00:00
0491a7980d ScEd: add mathutil header (seems to be required now, no longer included automatically); update to ogl_tex API (they have long been renamed in ps); fix issue with PS_CRect vs CRect
ogl_tex: add diagnostic code to track down ScEd crash

This was SVN commit r3159.
2005-11-19 22:27:53 +00:00
59f9e37930 lib error codes moved to errors.h and made X macros. this allows adding a corresponding text message, which is now output by debug_warn_err.
vfs_path, tex, tex_codec: small tweaks to error-related code.

This was SVN commit r3158.
2005-11-19 18:12:16 +00:00
5c9501830c Fix some more warnings.
This was SVN commit r3156.
2005-11-19 16:43:20 +00:00
71f1d3ed68 Consistently declare CRendererInternals as a struct, not a class.
This was SVN commit r3155.
2005-11-19 16:37:50 +00:00
5087732fe3 Refactor ProfileViewer into a singleton that uses AbstractProfileTable as
data model.
Profile.cpp implements AbstractProfileTable so the original
functionality
of the profiling display remains.
CRenderer also contains an AbstractProfileTable implementation that
displays
the rendering stats. Switch through different profile views using F11.

This was SVN commit r3154.
2005-11-19 16:15:34 +00:00
76c7f96833 add safety check to get_slot (this appears to be part of the error andrew is getting - possibly the victim of mem corruption)
This was SVN commit r3151.
2005-11-19 04:13:37 +00:00
d5d6e4052e lib: only debug_warn in UNREACHABLE in paranoia builds - avoids lots of warnings in debug mode
cursor: fix definition of ALLOW_SYS_CURSOR and use DDS instead of PNG
ogl_tex: add ogl_tex_transform_to for convenience
tex: fix issue with transform code (might not flip image if it was DDS)
win: decompress cursor texture if it was DDS
renderer: use DDS instead of PNG for alpha maps

This was SVN commit r3148.
2005-11-18 16:23:39 +00:00
eee7fca2d3 move atomic_add and CAS_ into pure asm.
this is good in general (less dependence on compiler) and is intended to
work around a bug andrew has been seeing. apparently VC generates
invalid code for the parameters + ASSERT, which causes infinite
recursion on the <location> validation.

This was SVN commit r3142.
2005-11-18 05:16:43 +00:00
81eec3aa10 fix build breakage (baad!):
EventTypes.h: was missing comma. also insert onHeal string since that
array seems to depend on index values matching the enums (would be a
very insidious error!)
entity/entityorders: fix typo - ORDER_HEAL_NOTPATHING ->
ORDER_HEAL_NOPATHING
eventhandlers: was missing semicolon

This was SVN commit r3133.
2005-11-13 23:29:56 +00:00
pyrolink
2ddf20374c entity healing
This was SVN commit r3128.
2005-11-13 06:42:33 +00:00
pyrolink
9cf709ff5a Added entity heal capabilities/
This was SVN commit r3127.
2005-11-13 06:42:12 +00:00
c3e70463d7 UNREACHABLE now generates warning if hit in debug mode (as per philip's request - good idea :) )
This was SVN commit r3123.
2005-11-09 04:11:13 +00:00
64f98cccc0 remove /QIfist setting from premake (see previous commits).
wsdl: remove APP_NAME, a relict of previously incomplete sdl emulation.

This was SVN commit r3121.
2005-11-09 01:20:33 +00:00
d51f4900d8 Don't crash when units are hanging over the edge of the map
This was SVN commit r3119.
2005-11-08 22:52:55 +00:00
e6a4dd7f3f Fixed Release-mode crash on middle-mouse up
This was SVN commit r3117.
2005-11-07 21:52:27 +00:00
9476dc4ad0 ia32: remove _ceil, mark functions as being sysdep implementations; prefix fpucw constants with IA32 to avoid conflicts
sysdep: remove round; document several functions; use ia32.h header
instead of a hack that extern-declared sysdep functions that are
implemented as macro-redirection
wsdl: add SDL_EnableKeyRepeat stub; group related functions in header
together; no longer need OS_WIN wrapper around that

This was SVN commit r3115.
2005-11-07 02:45:25 +00:00
14c62e721d ia32, sysdep: add float->int implementation and fallback version and self-test
config: add macro that determines when it's used
Terrain, wtime: use new float->int code
detect: no longer change _MCW_RC

This was SVN commit r3114.
2005-11-07 02:04:28 +00:00
8ead2e1e67 Enable key repeat on Linux.
This was SVN commit r3111.
2005-11-06 18:13:01 +00:00
78f9dbb6f1 Fix various warnings (both implicit conversions and real bugs).
This was SVN commit r3110.
2005-11-06 17:58:47 +00:00
124f7171bd More reliable texture blending. Resource unloading. Minor fixes.
This was SVN commit r3106.
2005-11-06 05:05:07 +00:00
d64561d18d minimap: fix issue where changes to terrain might not be noticed
losmanager: only comment out timer_accrue

This was SVN commit r3105.
2005-11-06 04:22:47 +00:00
db67607f62 Patch vertex buffers are marked as dynamic now, since they're changed every
frame for LOD (in the long run, try splitting them into dynamic and
non-dynamic parts).
Also, using TIMER_ACCRUE in an inner loop isn't such a good idea ;)

This was SVN commit r3104.
2005-11-06 04:16:19 +00:00
1a0744c9db Do not mess with FPU rounding control on Linux.
It significantly affects at least the software lighting calculations.

This was SVN commit r3103.
2005-11-06 03:54:58 +00:00
15cce8566f minimap: only update 10x/sec and if LOS state != ALL_VISIBLE; fix incorrect SAFE_DELETE
fix use of LOS_EXPLORED; == implies explored but not visible

This was SVN commit r3100.
2005-11-06 02:02:44 +00:00
6668ad6e1c CTerrain, Brushes: made CalcFromPosition static and added float x,y overload
minimap, PatchRData, renderer: fix ELOSState comparison vs & and use
SAFE_DELETE
ia32: add rounding control constants (for FISTP)
premake: set /QIfist compiler setting which causes float->int casts to
go through FISTP instruction instead of _ftol2() (much faster, but
requires CPU state to have been set)
LOSManager.cpp: cache m_TilesPerSize; use MIN/MAX; use
CTerrain::CalcFromPosition; clean up GetUnitState a bit. now runs at
203ns, down from 222

This was SVN commit r3099.
2005-11-06 01:33:16 +00:00
82bdda29ef GameView: revise usage of LOS_VISIBLE - must check bit, not equality
ia32: removing misleading and outdated comment
Player: add "LOS token" - speeds up LosManager by caching a temp result
LOSMAnager: speed up by about 9%, more to come. combined 2 DWORDs into
one u16; further optimization pending. old code remains (via #ifdef
frankenstein)

This was SVN commit r3097.
2005-11-06 00:07:01 +00:00
0346ba1b18 Refactor model rendering to perform vertex setup in ModelVertexRenderer.
Sort all transparent models by distance to camera (however, do not sort
polygons by default).

This was SVN commit r3096.
2005-11-05 23:15:23 +00:00
139c48e733 Removed TickAll of entities, for performance
This was SVN commit r3095.
2005-11-05 23:10:54 +00:00
fb115d19b9 Fix compilation with g++
This was SVN commit r3094.
2005-11-05 23:03:55 +00:00
faaee7d1b5 Atlas: Terrain painting
This was SVN commit r3092.
2005-11-05 04:59:54 +00:00
a679206ca1 Atlas: Use sem_msgwait_np
This was SVN commit r3090.
2005-11-04 00:02:43 +00:00
9e2ec6aa3e Wide to Multi-byte conversion needs some hinting.
This was SVN commit r3089.
2005-11-03 22:51:14 +00:00
5f5d19cac4 Compile fixes and cleanup
This was SVN commit r3088.
2005-11-03 22:21:44 +00:00
668794e61d add sem_msgwait_np for philip/use with atlas. add API fail reporting for sem_*
networkInternal - remove E* error codes; rely on system <errno.h> header
wposix: add all SUSv3 error codes; value = that of CRT (where
available), otherwise the linux value

This was SVN commit r3087.
2005-11-03 07:26:38 +00:00
7bfe647366 Atlas: Initial terrain-selection panel.
TextureManager: Skip *.jbf too.

This was SVN commit r3085.
2005-11-03 03:49:57 +00:00
e527c66fda document DynArray and add self-test. fix 2 tiny little bugs.
This was SVN commit r3083.
2005-11-03 00:42:37 +00:00
aa70714a9f huge dehackification: moribund key input code (featuring static buffer and goto) now uses queue and is much simpler. use message crackers to simplify wndproc and delegate responsibility. grouped keyboard/mouse/app activation code together.
This was SVN commit r3080.
2005-11-02 19:10:44 +00:00
3a5969f126 boil 5 state indicator flags down to 3, and store them as flags instead of bitfield
This was SVN commit r3078.
2005-11-02 06:35:34 +00:00
74bf76d523 fix bug #71 - was a double-free (both ~CRenderer and UnloadResources were calling UnloadWaterTextures)
This was SVN commit r3071.
2005-10-31 18:57:03 +00:00
6af5888866 replace g_active with more clear g_app_has_focus and g_app_minimized
reinstate g_keys - realized that atlas mode cannot call SDL_GetKeyState
main: use g_app_minimized etc. to use up less CPU time when app isn't
active (makes debugging more bearable)

This was SVN commit r3070.
2005-10-31 18:36:36 +00:00
8c76dc34af g_keys[] has been made redundant by SDL's key array; use SDL_GetKeyState instead to get address of new keys array
fix W4 warnings (unused param and type conversion mostly)

This was SVN commit r3068.
2005-10-31 16:26:51 +00:00
7078279ca2 Atlas: Altered some terminology (command vs message etc). Allowed information to pass from engine to UI.
This was SVN commit r3067.
2005-10-31 03:36:50 +00:00
2452e29f0d remove key- and mouse-state-clear code (previously called after alt+tab out). wsdl now takes care of this: by maintaining its own key array+sending up events for all currently down keys; and by capturing the mouse on each click.
-- this fixes "cursor keys require ctrl" bug reported by jason
wdbg_sym: fix warning
wsdl: as above and also better SDL_ACTIVEEVENT handling
mmgr: 500µs -> 500s -> 500us :)

This was SVN commit r3065.
2005-10-31 01:15:49 +00:00
be44dc842e Fix memory leaks in the new model code.
This was SVN commit r3063.
2005-10-30 21:31:10 +00:00
f2b88d7792 GameSetup: "-autostart=mapname" command-line parameter, for faster testing.
Misc: Don't catch(...)
Atlas: Removed old project files; adjusted include paths.

This was SVN commit r3062.
2005-10-30 21:30:52 +00:00
695d966788 ia32_memcpy now returns the destination pointer just like the standard
library version does.
Fixed improper non-use of delete[] in the new model code.

This was SVN commit r3060.
2005-10-30 21:01:42 +00:00
20d038efda profiling indicates memcpy is a bottleneck, so globally replace all of them with memcpy2 (hand-optimized). depending on transfer size, this is 10%..300% faster. also made memcpy2 into a macro instead of thunk function because vc7 was still generating a jump.
This was SVN commit r3057.
2005-10-30 16:19:20 +00:00
252bd478c4 Fix wgl extension function pointers (I hope). Thanks for pointing it out, Philipp.
This was SVN commit r3055.
2005-10-30 01:51:16 +00:00
501acc65f5 Extension function pointers are renamed from glXyzARB to pglXyzARB
to avoid conflicts with system header files.

This was SVN commit r3054.
2005-10-30 01:18:15 +00:00
875cb3bca1 Add ARB_vertex_shader specific functions to glext_funcs.h
Add an "instancing" model renderer to improve rendering of
non-transparent,
unanimated models. This renderer is used when the vertexshader path is
rendering path is used.

This was SVN commit r3052.
2005-10-30 00:22:22 +00:00
998622ff54 Initialize some previously uninitialized variables.
This was SVN commit r3050.
2005-10-29 22:50:54 +00:00
15d9278af6 tex, mem: fix refcnt issue that is the possible cause of bug#70! huge thanks to philip, who localized the problem to tex_wrap/memory not getting freed.
wdbg_sym: make sure symbol info is initialized even if *resolve() fails;
also fix warnings
renderer: make sure texture array is initialized

This was SVN commit r3049.
2005-10-29 22:29:55 +00:00
a7d6725f45 allocators, config: add CONFIG_OVERRUN_PROTECTION - allows disabling the lengthy work done by OverrunProtector
h_mgr: clarification of fn_store code
mem.cpp: fix recursive taking of a lock

This was SVN commit r3048.
2005-10-29 21:40:41 +00:00
f323726118 allocators: bugfix, unlock mem range before calling dtor
mem: made thread-safe; use OverrunProtector for Ptr2H

This was SVN commit r3047.
2005-10-29 18:30:39 +00:00
bc78557f10 move boilerplate overrun protect code into OverrunProtector
This was SVN commit r3046.
2005-10-29 17:58:26 +00:00
5d821cc925 wrap placement new in #include "nommgr.h" so that it works with memory tracker enabled
This was SVN commit r3044.
2005-10-29 03:18:27 +00:00
8c437850e6 allocators: add include guard and posix.h (needed for PROT_*)
debug: add debug_is_code_ptr and debug_is_stack_ptr
config: add CONFIG_OMIT_FP (needed for ia32_stackwalk).
h_mgr: hyperparanoid overrun detection straightjacket for key2idx - now
safe to use at any time and any unexpected changes cause access
violation.
ia32: add ia32_get_call_target, which disassembles backwards and checks
for a valid CALL instruction + its target
wdbg_sym: add win-specific walk stack function. it's quite simple and
requires EBP frames (hence CONFIG_OMIT_FP). rationale: dbghelp requires
~30 seconds (!) to start up. recent changes (tracking malloc callers via
debug_get_nth_caller) made this happen on every run, so added a
fast-path stack walker to avoid this.

This was SVN commit r3043.
2005-10-29 02:32:36 +00:00
b10534d224 Transform normals using the original bone matrix instead of the inverse of the
transpose. This assumes orthogonal transformations (which we have
exclusively,
as far as I can tell), but is significantly faster, because calculating
the
inverse is slow.

This was SVN commit r3041.
2005-10-28 19:25:47 +00:00
813738c295 add debug_warn_err analogous to debug_assert_failed that reports an error code for use with CHECK_ERR et al. (as discussed in bug#70)
This was SVN commit r3037.
2005-10-28 02:56:35 +00:00
bbda296289 TerrainProperties: Use CTerrainPropertiesPtr (boost::shared_ptr) instead of CTerrainProperties*, to fix (slightly inelegantly) memory leaks.
Renderer: Initialise pointers when HW lighting is unavailable.
Atlas: Avoid strange VS2005 iterator complaint.

This was SVN commit r3036.
2005-10-28 01:43:16 +00:00
e3b0f20d4e change requested by philip: debug_printf "tags" are now followed by '|' instead of ':' because something like "func: i am blowing up" is rather common.
This was SVN commit r3035.
2005-10-27 16:53:41 +00:00
7fa2770203 tex_dds now supports uncompressed images. also armor-plated the loader and split up decompression vs dds format code.
This was SVN commit r3032.
2005-10-27 00:51:30 +00:00
8d6d6a1a1e Wireframe hotkey (default = Alt+W) cycles through wireframe modes
for terrain and models now.

This was SVN commit r3026.
2005-10-26 01:43:49 +00:00
a357c7334e Props remember who they're attached to and other mostly bone matrix related
things that should fix the heads-detached-from-bodies problem.

This was SVN commit r3025.
2005-10-26 01:03:28 +00:00
b7df6f7fbf Do not sort transparent models by default.
This was SVN commit r3012.
2005-10-25 02:22:22 +00:00
d977bc27dc Eek.. apparently, I committed in the wrong subdirectory.
Also, fixed a stupid bug that caused transparent objects to be
retransformed
all the time.

This was SVN commit r3011.
2005-10-25 02:00:09 +00:00
82ee484821 Massive rewrite/refactoring of the model rendering system.
Performance impact:
+ Player color rendered models are batched like normal models
- Transparent sorted models never use the vertex shader path

This was SVN commit r3009.
2005-10-25 01:43:07 +00:00
178ad741b9 DevIL: Improved quality of DXT5 alpha compression.
textureconv: Made -(no)mipmaps work. Defaulted to DXT5 for alpha
textures (since DXT3 almost never seems any good). Recompiled with new
DevIL code.
GUIRenderer: Removed complaints about 0-sized objects (e.g. hitpoint
bars).
Atlas: Added forgotten files.

This was SVN commit r3006.
2005-10-24 23:45:52 +00:00
0a202da843 also add code here to reset buttons when alt+tabbing out, analogous to CGUI (thanks to Philip for mentioning the problem)
This was SVN commit r3004.
2005-10-24 21:43:39 +00:00
0d6dd7836d fix assumption that SDL_BUTTON < 3
add ClearMouseState to reset buttons when alt+tabbing out (thanks to
Philip for mentioning the problem and Gustav for telling me how to fix
it :D)

This was SVN commit r3003.
2005-10-24 21:10:45 +00:00