1
0
forked from 0ad/0ad
Commit Graph

2410 Commits

Author SHA1 Message Date
15e8d9a0b3 # error handling: make sure all lib/ failure paths are covered by error handling; simplify its use a bit
- validators now WARN_RETURN as well (rationale documented in
lib_errors.h)
- got rid of some CHECK_ERR (try to avoid multiple errors for the same
underlying problem)
- H_DEREF now first checks if handle is invalid already and returns that
if so; avoids the need for a RETURN_ERR before it.

This was SVN commit r3799.
2006-04-22 21:21:42 +00:00
83970eceae forgot to add this
This was SVN commit r3797.
2006-04-22 16:50:17 +00:00
01700f0e9f # refactor VFS path-related functions; split into separate files
- replace all hardcoded strrchr functions (used to get extension / file
name only) with path helper functions (found a few bugs in the process)
- split VFS-independent path helper functions into lib/path_util (allows
including by other files without pulling in entire VFS)
- renamed pp_* functions path_package_*
- split remaining path helper functions into lib/res/file/path
- vfs: split should-reload logic out of vfs_reload_changed_files

- lib: add comments to rand/xrand

This was SVN commit r3796.
2006-04-22 16:26:16 +00:00
pyrolink
b5d9da29c1 #When appropriate (i.e. wheeled units), units will align with the slope of the terrain. *JS documentation
*added CTerrain::getSlopeAngle[Face]() which returns the angle in
radians of the slope of the terrain.  getSlopeAngleFace should be used
for entities because it takes into account which way the entity is
facing, which allows for negative angles.
*the max and min graphical rotation for the slope is under traits.pitch.
This is used so that you can have certain units such as infantry that
don't rotate very far go down steep slopes but not rotate too much.
*JS documentation in docs/JSReg.rtf -- I put in most of the relevant
global functions; still needs entity functions.

This was SVN commit r3794.
2006-04-22 05:52:23 +00:00
d9b033c85f # Enabled some interoperability between different compiler versions for the game and the editor DLL
This was SVN commit r3790.
2006-04-21 03:53:10 +00:00
8bb97e63cd # Work around a problem in ATI's binary Linux driver
This was SVN commit r3789.
2006-04-21 03:06:57 +00:00
8f02c6f10d # GCC compatibility
This was SVN commit r3788.
2006-04-20 06:53:22 +00:00
6792e95517 # fix vtbl_magic compile error on VC8; fix incorrect type in u32_from_larger; explanation+cleanup
- move AllocatorChecker to allocators.h since usefulness is not limited
to CacheAllocator
- file: add note on casting File.opaque
- vfs_redirector: was missing u32 (fails on VC8)
- zip: fix u32_from_larger (was using incorrect type)

This was SVN commit r3786.
2006-04-20 04:25:14 +00:00
fd08924348 # VC2005, GCC compatibility
Used new library include paths.
Renamed ia32.asm to ia32_asm.asm, so we don't need Premake modifications
to avoid object-file conflicts with ia32.cpp.

This was SVN commit r3784.
2006-04-20 01:33:57 +00:00
3ccb5676c6 # bugfix: off-by-one in sys_max_sector_size; add unix implementation of it
thanks to philip for the report!

This was SVN commit r3778.
2006-04-19 21:55:51 +00:00
6f9da5da7a # refactor vfs/file code (unify interface, dispatch between providers via virtual functions)
1) unify open/io interfaces: no longer distinguish between FileIo /
AFileIo. instead, one FileIo struct is always used; the
provider-specific data is embedded within it. this avoids the need for a
"base class", which is hard to access (f.fc.flags is ugly)
2) rename x_* redirector to xfile_* and move out of vfs_mount into
separate file
3) xfile is now implemented via "virtual functions" (avoids a lot of
boilerplate code)
4) xfile was too closely tied to vfs_mount (used internal fields);
fixed.

remaining lib/res files: made all flag parameters uint (not int) for
consistency

This was SVN commit r3776.
2006-04-19 15:19:04 +00:00
c81df59294 # Include headers for compilation without PCH
This was SVN commit r3774.
2006-04-19 05:30:02 +00:00
d158ed9dc9 Terrain overlay: Fixed incorrect state change
Other: Trivially tidied profile text. Removed VC2005 deprecation
avoidance, since wx 2.6.3 does that anyway.

This was SVN commit r3773.
2006-04-19 00:56:24 +00:00
8a11f53011 # More consistent terrain-space coordinate names
# Removed more ancient unused code
# Partial VC2005 compatibility for Atlas editor / AoE3Ed
# Terrain overlay rendering system; used to implemented Atlas brush
display
# Renamed 'right' to 'left'

This was SVN commit r3771.
2006-04-17 20:02:51 +00:00
89c3fad6f3 # Fixed a bug with the rendering of unit rank icons.
This was SVN commit r3768.
2006-04-14 08:33:52 +00:00
8d7e2ff00a Fix to some of the rank icon rendering issues.
This was SVN commit r3767.
2006-04-14 08:25:29 +00:00
6fbce9c355 # refactoring
- color: the sse codepath is now detected and activated from within
color.cpp, which avoids making ia32 dependent on the color header. it's
called from gamesetup!InitRenderer.
- move VFSUtil::EnumDirEnts to vfs.cpp!vfs_dir_enum - allows it to be
used from within lib/ without dependency on ps (annoying for other
projects)

This was SVN commit r3764.
2006-04-14 06:32:05 +00:00
099e860915 Quieter and more informative error when using props/units/tools/basket.xml (and maybe others), where the model has bones but doesn't have a boned animation
This was SVN commit r3762.
2006-04-14 04:35:36 +00:00
c41248b585 # Updates to actor prop-switching system
Forced variant names to lowercase. Allowed empty prop model names to
remove inherited props. Removed a little code duplication.
Entity: Changed confusing (and probably incorrect) loop/STL logic, to
use slightly more confusing syntax instead.

This was SVN commit r3761.
2006-04-14 03:14:43 +00:00
68d4d6cd77 # Removed some ancient unused code
This was SVN commit r3758.
2006-04-13 21:50:44 +00:00
5812774ded # fix bug#80 (was due to uninitialized mem)
This was SVN commit r3755.
2006-04-12 06:37:51 +00:00
4856af5f25 This was SVN commit r3753. 2006-04-12 01:18:38 +00:00
kevmo
589c03a502 # housekeeping
Fixed includes to header files that were renamed, added defines for
ia32_fminf and ia32_fmaxf in sysdep.h, and added declarations for the
same in ia32.h

This was SVN commit r3752.
2006-04-12 01:12:18 +00:00
836cd08d5e # add CppDoc file header to all files, along with their descriptions.
also:
- renamed wdll to delay_load, and wdll_ver to dll_ver
- removed empty wcpu

This was SVN commit r3751.
2006-04-11 23:59:08 +00:00
cde3c55eae # more SwEng improvements in snd_mgr / wdetect
snd_mgr: replace al_check("funcname") with AL_CHECK macro; allow
disabling WIN_LOADLIBRARY_HACK.
wcpu: move sys_on_each_cpu here from wsysdep
split up wdetect into wgfx, wsnd, wdll_ver

This was SVN commit r3748.
2006-04-11 01:45:07 +00:00
kevmo
bd431d25f6 # First iteration of low-level pathfinder
PathfindSparse replaced with an A* implementation.  Low-level
pathfinding done on the tiles of the map, high level pathfinding is
currently a placeholder, and only gives the final waypoint.

This was SVN commit r3747.
2006-04-10 22:05:21 +00:00
7e6fd7f199 this still had the old res/sound/snd.h; fixed. (also some local temporary changes)
This was SVN commit r3746.
2006-04-10 21:49:12 +00:00
34637ba5dc # refactor sysdep API, split it into parts
- split up detect.cpp into snd, cpu, gfx (headers were already split)
- rename detect functions for more clarity (e.g. get_cur_vmode ->
gfx_get_video_mode)
- rename lib/res/sound/snd to snd_mgr to avoid conflict with
sysdep/snd.cpp
- waio: set errno in aio_rw (addresses bug #73)

This was SVN commit r3745.
2006-04-10 20:12:25 +00:00
674bbc3735 # archive builder now unmounts and deletes old archives after building a new one
vfs_optimizer: also refactor existing_archives. all existing root dir
entries are filtered and only archives remain.

This was SVN commit r3743.
2006-04-10 19:09:11 +00:00
3dec1bfb20 # bugfix for #78: definition of PATH_MAX was too small/mixed up with VFS_MAX_PATH
This was SVN commit r3741.
2006-04-10 16:59:21 +00:00
6eac18d9fe # housekeeping (improve unreachable code annotations and avoid compiler warnings)
adts: use SAFE_FREE
config: add CONFIG_FINAL; use it in
compression,vfs_optimizer,scriptablecomplex
lib: add discussion of unreachable code avoidance; revise UNREACHABLE
and add NODEFAULT
ogl_tex, tex_dds: remove some unnecessary UNREACHABLE
sysdep: move compiler-specific implementation of UNREACHABLE here.
use NODEFAULT in snd, wdbg, wposix, wsdl

This was SVN commit r3739.
2006-04-10 06:44:54 +00:00
f3aa2dd222 # housekeeping:
* mapreader: increases progress bar update interval (was calling back
10x for 1%, which is an excessive slowdown)
* lib_errors: add ERR_MEM_OVERWRITTEN
* mmgr: replace debug_assert(0) with more specific errors

This was SVN commit r3737.
2006-04-09 07:46:37 +00:00
kevmo
baf357d2ea # Began work on new pathfinder
Created CTerrain::getSlope(x,y), and added a new order type to support
high-level pathing.

This was SVN commit r3735.
2006-04-09 00:36:52 +00:00
604225f971 # Fix unportable code and g++ specific warnings
* Use / instead of \ in #include path names
* g++ prefers files that end in a newline

This was SVN commit r3734.
2006-04-08 23:47:29 +00:00
pyrolink
f2e867e239 #Bar borders and angle penalty
-Changes to notifications. They take different parameters now-see
template_entity_script.js.  You can choose to destroy the notifiers
yourself in the script (useful for idle)
-Added "idle" event with registerIdle and registerDamage to assist with
the angle penalty.
-Bar border stuff
-Angle penalty is set up but untested-it just needs to use
this.getAttackDirections() to find the number of directions the entity
is being attacked from.  The penalty is specified in template_unit

There is a problem when the game exits-it attempts to destroy the
notifiers in entity.cpp's constructor, where it calls
DestroyAllNotifiers().  The problem is that the notifiers don't exist
any longer because they've been destroyed. I would fix it but I'm
leaving for vacation (Jason told me it was OK to comitt). Hope it isn't
too much of a problem.

This was SVN commit r3732.
2006-04-08 22:34:54 +00:00
8c6fd12969 # Code for automatic SVN public logging
This was SVN commit r3730.
2006-04-08 12:59:11 +00:00
6365c30098 # Fixed failure when saving maps
FilePacker: removed code that used to be in a #ifdef SCED
Changed to PSERROR system, for error-reporting consistency

This was SVN commit r3728.
2006-04-04 04:14:10 +00:00
b37d3f2095 # fix W4 warnings on VC
This was SVN commit r3726.
2006-04-03 22:06:09 +00:00
44901d38b9 # further documentation and improvements to lib/res/file code
FILE_CACHE_BLOCK flag used more safely (copied in afile_read)
add file_sector_size (set from sysdep code)
documented and organized FileFlags
moved publically visible file_buf* decls to file.h; add FileBufFlags
file_buf_get: moved to file_io and renamed because it is not a part of
the file_buf manager itself
FILE_BLOCK_SIZE no longer exposed to users - it's an implementation
detail. for alignment purposes, you should use file_sector_size (less
wasteful)
add page_aligned allocator (mmap)
write buffers now allocated via file_buf_alloc(FB_FROM_HEAP) (avoids
wasting cache space)
append trace runs into the trace file (-> better input data for archive
ordering)
document lib_errors.h
tex_load: add provision for file_flags, used by ogl_tex_load to prevent
caching file data

simulation, entitymanager: add perf measurements

This was SVN commit r3725.
2006-04-03 21:28:10 +00:00
5738bd4820 # overhauled error handling; made sure all low-level function failures are caught at the source.
* replace all "return ERR_*" with WARN_RETURN(ERR_*) - makes sure
function failures are noticed *at the cause*, not later
* LibError_from_* now take bool warn_if_failed param
* replace more debug_warns with dedicated error codes (allows localized
error reports and doesn't spam the EXE with strings)

This was SVN commit r3722.
2006-04-03 01:00:45 +00:00
001e951066 Autobuilder: Notify autologger of commits.
Interact.cpp: Added category to LOG calls.
Atlas: Renamed all handler source files, so they won't conflict with
other files of the same name. (Fixes bug #77)

This was SVN commit r3721.
2006-04-03 21:08:58 +00:00
d9944f9524 # remove last occurrences of old ScEd-specific code
This was SVN commit r3719.
2006-04-02 16:27:34 +00:00
bd96a1ab7c # fix unit rank texture loading (was crashing when displaying log message)
problems: for a "vector<CStr>::iterator it", passing *it to a varargs
function taking const char* (baad because compiler cannot invoke the
operator const char* and therefore screws up the stack); incorrect
parameters to LOG().
thanks go to philip for diagnosing the problem!

This was SVN commit r3717.
2006-04-02 07:22:23 +00:00
b5ad9faf74 # fix STL complaint when running on VC8 and building archive
(STL implementation AFAICS incorrectly disallows taking &vector[0] if
empty but memory has been reserved)

This was SVN commit r3715.
2006-04-02 04:50:47 +00:00
pyrolink
3408b078b7 #Unit formations and rank textures
-Added functionality for "casting" and creating net messages (without
JS)
-Rank textures-specified in XML
-Formations-currently don't attack correctly (i.e. travel like mobs) and
don't switch to their movement formations when tasked to go somewhere
(the pathfinder doesn't give any heads up about destination reached, so
there's no way to change back to the original).  Also, base switching is
untested so no garuntees for next and prior formation things.

This was SVN commit r3710.
2006-03-31 03:30:34 +00:00
87780e328a Potentially really fix that renderpath related crash.
This was SVN commit r3708.
2006-03-31 02:19:11 +00:00
b951eb5fd6 #Fix a potential crash in renderpath selection.
This was SVN commit r3702.
2006-03-28 19:45:44 +00:00
5acfc87608 #Adjust the default Z bias for shadow rendering.
This was SVN commit r3699.
2006-03-27 19:00:04 +00:00
b57ccc0887 * Fix: Silly operator precedence problem
This was SVN commit r3696.
2006-03-26 22:18:35 +00:00
0d648b2df8 #More accurate bounds calculations to improve shadow resolution
and a fix for the auto-build: #define enums from EXT_framebuffer_object

* clip shadow bounds to frustum
* add CBrush, a class representing a convex object

This was SVN commit r3695.
2006-03-26 21:58:48 +00:00
73506eb076 #Code cleanups related to renderer
Remove the OPT_NOPBUFFER and OPT_SHADOWCOLOR options and related
variables
since they weren't really used.

This was SVN commit r3694.
2006-03-26 17:46:18 +00:00
8fd256c458 #Use EXT_framebuffer_object when available
* noframebufferobject configuration in system.cfg can be used to
  disable EXT_fbo (in case drivers are flaky etc.)
* shadow texture size now honours the OpenGL maximum texture size as
reported
  by the implementation

This was SVN commit r3693.
2006-03-26 17:36:33 +00:00
e2bbd9a654 #Models receive shadows now, including self-shadows.
This is a huge patch, including:
* add a LitRenderModifier abstract base class for RenderModifiers with
  shadow+light
* add LitRenderModifiers for all types of models
* add STREAM_TEXGENTOUV1 to request generation of shadow map texcoords
  for models
* create facilities to pass the texture matrix from the
  RenderModifier (fragment stage) to the ModelRenderer (vertex stage)
* split ambient and diffuse terms of lighting until further down in the
  pipeline; this is necessary since shadowed regions receive only
ambient light
* small improvement in how RenderPathVertexShader scales to a greater
  number of vertex shaders

This was SVN commit r3690.
2006-03-26 00:54:20 +00:00
0bd5778536 #Fix a crash in the heightfield tracer.
Apparently, nobody has ever managed to get a precise 0 into the camera's
direction vector before...

This was SVN commit r3688.
2006-03-25 22:13:28 +00:00
0e09451cfb # bugfix
avoid warning due to imbalanced buffer count

This was SVN commit r3687.
2006-03-25 21:44:25 +00:00
d6abc57868 # add instrumentation to file_cache; bugfixes
adts: whip together inefficient LRU cache manager (mostly for comparing
vs. Landlord)
file_cache: fix self-test (now correctly deals with small cache sizes)
file_stats: more stats for file cache
trace, vfs: bugfix: ignore writes recorded by the trace

This was SVN commit r3684.
2006-03-25 07:08:29 +00:00
8371f42da9 # IO bugfixes and improvements; more support for cache/seek measurements
adts: slight improvements
allocators: change POOL_VARIABLE_ALLOCS to -1 for safety; fix invalid
assumptions of it being 0
lib: more expressive param names
file: add file_get_random_name for randomized trace generation; allow
file_cache.h to declare externally visible file_buf_alloc API

file_cache: zero-length file bugfix; also add several flags to the API
routines allowing statistics gathering to be disabled (avoids distorting
stats due to e.g. trace_entry_causes_io cache simulation)

file_stats: add archive builder info; separate IO timing and seek
accounting (-> correct results)

trace: add random generation capability
vfs: made responsible for cache hit/miss accounting (fixes cache miss
rate display)

This was SVN commit r3681.
2006-03-24 21:56:00 +00:00
f45c44ca09 Rotated various things (terrain texture UVs, default light and camera angles) by 45 degrees.
Map XML: Store camera position. Stopped using DTDs (because they make it
too hard to change the XML structure without breaking all the old XML
files).
Game.h: Include fewer files, to make compilation sometimes faster.
World: Changed some things to not be singletons, since they were
(ab)used as CWorld members.

This was SVN commit r3670.
2006-03-21 20:55:45 +00:00
ccc8055226 Fail more nicely with invalid actors
This was SVN commit r3669.
2006-03-19 22:37:56 +00:00
f5f4670d7f tweaks for thesis and minor fixes.
file: change block size to 32kb (=> yields highest throughput)
archive, file_io: add additional block cache forwarding path when
reading uncompressed data from archive (avoids repetitive IOs)
file_io, file_stats: fix inaccurate and incorrect IO throughput
calculation
file_stats: refactor some calculations to avoid division by 0

This was SVN commit r3665.
2006-03-18 21:28:47 +00:00
2e0a312913 update load time estimates. CSimulation is quite high and in need of optimization!
This was SVN commit r3664.
2006-03-18 21:25:03 +00:00
c2f13c689e Load default player data from XML
This was SVN commit r3658.
2006-03-18 04:38:41 +00:00
afae448b11 fix: memory leak fix wasn't correctly resetting root node during tree_clear. this caused crash after creating archive.
This was SVN commit r3656.
2006-03-18 01:07:05 +00:00
d3f57744d9 Refactored actor variation system, and added support for entity-level selections (controlled by the current animation).
Avoided tooltip error message.
Avoided noisy warnings when textures fail to load.

This was SVN commit r3653.
2006-03-17 03:59:49 +00:00
6eda8c2209 file_cache: make infinite loop warning less likely
vfs_mount: only notify archive builder of files that are archivable
vfs_optimizer: fix should-rebuild logic; make 2 criteria optional and
disable in final release for convenience

This was SVN commit r3651.
2006-03-16 18:57:09 +00:00
7564827a8a adts: DynHashTbl: safely handle calling clear() right before dtor
vfs: remove second call to tree_init (now done by vfs_mount)
vfs_tree: fix memory leak due to not destroying root node. commented and
armor-plated things while at it.

This was SVN commit r3647.
2006-03-16 07:16:24 +00:00
8b3e5759eb Fixed GC bug (plus some potential ones that didn't seem to actually cause problems).
Added \r\n->\n conversion in JS ReadFile functions.

This was SVN commit r3644.
2006-03-16 03:45:31 +00:00
37c99471c2 archive: bugfix: archive_build_cancel is now no-op if build not in progress.
This was SVN commit r3642.
2006-03-15 21:37:30 +00:00
254a2df794 Console: Avoid inserting unprintable characters, e.g. when doing ctrl+c.
This was SVN commit r3640.
2006-03-15 19:19:03 +00:00
26dc8cc4c8 - tex_dds: fix comment; enable warning on unsupported formats
- renderer: avoid particle-emitter memory leak warnings

This was SVN commit r3639.
2006-03-15 18:32:24 +00:00
f037b13fc6 use new archive_open return value to ignore invalid zip files (and not add them to VFS)
This was SVN commit r3635.
2006-03-15 05:56:01 +00:00
3d93740456 - allocators: SingleAllocator: renamed free method to release() to avoid need for nommgr
- lib, sysdep.h: move DIR_SEP to sysdep.h
- archive, compression: minor touchups
- zip: large refactor: all accesses to little-endian structs are now
done by helper functions (fixes bug: wasn't endian swapping ECDR). also
detect unfinished zip files (for VFS mount to ignore)
- tex_dds: fix comment

This was SVN commit r3634.
2006-03-15 05:18:32 +00:00
ed38414b41 Texture converter, DevIL: ABGR DDS support.
Textures: converted ARGB to ABGR.
Misc: warning fixes, etc.

This was SVN commit r3631.
2006-03-14 21:29:19 +00:00
1d5308316e bugfixes for problems reported by philip: (thanks!)
file_cache: add warning to cache_allocator to catch incorrect usage /
bugs
vfs_optimizer.cpp: tweak miniarchive threshold (currently have config
files in there; don't want those to trigger rebuild every time)
zip: clarification
tex_dds: we now bother checking the DDPIXELFORMAT mask bits because
uncompressed DDS files may be stored in any pixel component order, but
we require RGB for efficiency.
wsdl: fix failure to update; was constantly queuing events if mouse was
out of window

This was SVN commit r3627.
2006-03-14 07:20:12 +00:00
d776024848 bugfix: was not propagating mount point flags to Mount structure created for archives. this could result in no "archivable" files being found during archive build, leading to ERR_DIR_END.
This was SVN commit r3624.
2006-03-11 03:30:36 +00:00
b605cc8a85 adts: fix brain-dead bug that was slowing down Divider_Recip
vfs_optimizer: add note on future improvements

This was SVN commit r3622.
2006-03-10 22:35:58 +00:00
201aae41d9 file: pp_set_dir fix: safely handle case where pp.path already contains data; add TFile* member to DirEnt
vfs: add VFS_MOUNT_ARCHIVABLE flag; allow archive builder to only
include files from mount points with this set.

VFSUtil: make EnumDirEnts more efficient while at it (uses PathPackage
and filename storage)

This was SVN commit r3618.
2006-03-09 21:37:23 +00:00
e0280949fd file_cache: fix: add buf/size combo to exact_buf_oracle if file_io rounded size up.
trace: split code out of vfs_optimizer (was getting too large)
vfs_mount: expose API to unmount all (needed to be able to delete
archives after building)
vfs_optimizer: safely handle empty connection/node lists;
refactored+documented
vfs_tree: eliminate 'file in root dir' warning (can happen easily
enough)

rest: fixes/minor tweaks

This was SVN commit r3610.
2006-03-07 05:44:34 +00:00
9925188b68 Whoopsie - missed some brackets in wsysdep
This was SVN commit r3609.
2006-03-06 08:16:29 +00:00
bd922cbe02 Unix cursor support, some gcc warnings, etc
This was SVN commit r3608.
2006-03-06 03:46:12 +00:00
6e15ed1e82 fix bug related to FileId use; now safer due to separate node_from_id function
This was SVN commit r3605.
2006-03-05 07:35:42 +00:00
16fe4eeda2 - adts: add TODO comments
- file_cache: add checker for allocations (catches bugs in debug mode);
fix bug that freed buffers even thought they were on extant list.
- vfs_mount: bugfix: was passing P_path to vfs_opt_notify when it should
be V_path
- vfs_optimizer: big refactor; fix bugs in TourBuilder causing some
files to be omitted from archive (thus forcing unnecessary archive
rebuild - because #files not in archive was too big)

This was SVN commit r3602.
2006-03-04 18:58:09 +00:00
c1ca8c978c Various Linux build fixes.
This was SVN commit r3601.
2006-03-04 18:41:22 +00:00
f1123fa2b9 Initialized health to 0 for entities with no health.
This was SVN commit r3593.
2006-03-04 01:15:32 +00:00
12c2a28774 - Added getColour() to Player JS interface
- Set stamina to 0 by default for units without stamina

This was SVN commit r3590.
2006-03-03 20:57:45 +00:00
ca1ac3034e fix 2 gnarly bugs:
- adts: Cache.remove_least_valuable was returning false prematurely even
though there were still some items pending eviction; that meant they
remained in cache
- file_cache: wasn't clearing exact_buf_oracle on reset. also made
make_read_only pass correct exact_buf rather than just rounding down.

This was SVN commit r3589.
2006-03-03 20:49:19 +00:00
dda6268466 - cgui: now convert EventName to lowercase in SendEventToAll
- compression: now use "fastest" compression mode and more memory unless
in FINAL build. this greatly speeds up archive generation at expense of
1.5% size increase (fine during development). done because profiling
shows ZLib accounts for 78% of CPU; practically nothing else shows up,
which shows effectiveness of compressing in parallel with reading from
disk.

- file_cache: documented; fixed several potential issues with exact_buf
when invalidating files.

This was SVN commit r3586.
2006-03-03 06:03:16 +00:00
39a9eb19cf again raised "infinite loop" warning threshold because it was still being hit, apparently. value is still plausible.
This was SVN commit r3582.
2006-03-02 07:23:30 +00:00
04b72b29b4 archive: new rule for choosing whether to compress files or not: leans heavily toward the former because that uses less memory when loading (less loss due to internal fragmentation)
everything else: bugfix: buffers added to extant list via
file_buf_retrieve (i.e. moved from cache to extant list) didn't have
their long_lived flag carried over; this caused a "not freed
immediately" warning.

This was SVN commit r3580.
2006-03-02 02:21:55 +00:00
0fd85b76db automatic archive builder now functional and enabled.
- allocators.cpp: fix: make sure all pool fields are reset in
pool_free_all; correct matrix self-test
- lib: fix self-test
- lib_error: give "informational" return codes values > 100 (allows
multiplexing with percent indicator)
- archive: add clarification to afile_enum; use vfs_load when building
archive (fixes caching problem); add support for progressive archive
creation
- file: allow pp_set_dir's path to end in slash (simplifies other code);
add file_exists
- file_cache: add stats+sanity checks to allocator; improve ExtantBufMgr
find(); add ExactBufOracle to translate padded address returned by Cache
to what was actually allocated; relax infinite-loop check; fix
file_cache_reset
- file_io: refactor callback logic so it can be used by vfs (needed for
vfs_load)
- vfs: vfs_load now supports calling back (required for archive builder)
- vfs_mount: optimize path caching in afile_cb: due to atom_fn system,
string compare can be done via pointer compare
- vfs_optimizer: support auto-build of archive (progressive); improve
should-build-archive check (WIP)
- vfs_path: add util functions (also used in screenshot code)
- vfs_tree: simplify pathname storage
- wposix: mmap bugfix
- main: call progressive archive builder; skip reload when doing so
(documented)
- JSInterface_VFS+scriptglue: add archiveBuilderCancel
- ps/Util: use new vfs_path helper function for cleverer screenshot
naming (correctly handles some being deleted)

This was SVN commit r3578.
2006-03-01 22:31:11 +00:00
943f1fca16 Fixed a couple of small bugs:
- Doubleclicking a unit only selects units of that type owned by the
same player (before, it selected all units of that type).
- Stamina no longer decays when you finish running to something and
start attacking/gathering it.
- Removed the extra frame of gather/build animation that played after
you finished gathering/building something before the idle animation
kicked in.

This was SVN commit r3568.
2006-02-26 22:37:04 +00:00
192ddf9ddf Added construction logic in startPlacing and Entity and BaseEntity, as well as the Death event.
This was SVN commit r3564.
2006-02-26 09:55:20 +00:00
78a5202e49 vfs_mount: bugfix: choose newer version of a file if present in loose dir and archive
vfs_optimizer: add enable/disable logic for trace
vfs_tree: add code to determine most recent file

This was SVN commit r3562.
2006-02-25 19:26:00 +00:00
4a0baf529d rename free() to dealloc() to avoid need for #include "nommgr.h"
This was SVN commit r3557.
2006-02-23 18:58:16 +00:00
bc07b9ff0a file code v2 is now feature complete and works.
- adts: add basic benchmark to self-test; use fminf instead of MIN; fix
overly pessimistic invalidation in Landlord_Cached
- allocators: no longer complain if DynArray is full
- lib: warn if rand() min=max
- archive: bugfixes: plug leak, correctly handle 0-length files, carry
over flags when reading uncompressed file from archive
- file: expose file_get_sorted_dirents and implement file_enum in terms
of that
- file_cache: many bugfixes (especially related to CacheAllocator
freelist)
- vfs_optimizer: finish implementation of archive builder
- zip: correctly handle 0-length files
- tex: add tex_is_known_extension
- sysdep: add efficient fminf implementation (assumes P6+)

- config: update archive builder call site
- gamesetup: add call for delayed self tests
- entity: return JSVAL_VOID as per philip's suggestion

This was SVN commit r3553.
2006-02-23 07:55:32 +00:00
169889bcbc Small bug fix so issueCommand works for NMT_Produce.
This was SVN commit r3549.
2006-02-23 01:26:02 +00:00
7a4aeb69ed Added production queue system and associated events. It might still need some extra features but it should be functional.
This was SVN commit r3547.
2006-02-22 22:45:16 +00:00
e2a11fabe8 fix warnings (VC7)
This was SVN commit r3542.
2006-02-19 21:16:54 +00:00
4eb33aa89d more dox
This was SVN commit r3541.
2006-02-19 21:06:22 +00:00
0a368a4fec massive update to adts: cache now implemented via templated policy classes.
Entity.h: fix minor warning

This was SVN commit r3539.
2006-02-19 18:51:00 +00:00
9a70dee2f9 Fix a crash in CConsole history (could be triggered by pressing key down
without having pressed key up before).

This was SVN commit r3534.
2006-02-19 00:33:50 +00:00
71dab351bd Changes to const void* hash function as suggested by Jan in
http://www.wildfiregames.com/forum/index.php?showtopic=9642&pid=167148&st=20&#entry167148

This was SVN commit r3532.
2006-02-18 23:21:05 +00:00
livingaftermidnight
a82888286f This was SVN commit r3530. 2006-02-17 02:03:15 +00:00
livingaftermidnight
285d9281e0 This was SVN commit r3529. 2006-02-17 02:03:00 +00:00
livingaftermidnight
77094853b5 This was SVN commit r3528. 2006-02-17 02:02:39 +00:00
livingaftermidnight
ce6249cf12 This was SVN commit r3527. 2006-02-17 02:02:29 +00:00
livingaftermidnight
d6f757185f This was SVN commit r3526. 2006-02-17 02:02:18 +00:00
livingaftermidnight
cac25fa660 This was SVN commit r3525. 2006-02-17 02:02:04 +00:00
livingaftermidnight
af1377822d This was SVN commit r3524. 2006-02-17 01:13:04 +00:00
livingaftermidnight
85b2f8f7b1 Fixed texture issues. Still needs alpha blending fixed though.
This was SVN commit r3523.
2006-02-17 00:26:15 +00:00
dbdbb84f41 fix for VC7, whose /GS check is apparently much less thorough and doesn't include __security_init_cookie
This was SVN commit r3521.
2006-02-16 20:45:38 +00:00
38a3dba3d2 avoid R6035 on VC8 when entry() has not-commented-out __try and compiled with /GS
This was SVN commit r3520.
2006-02-16 20:23:27 +00:00
f903b83674 Add renderer.disableCopyShadow for debugging purposes.
Add renderer.depthTextureBits configuration value.

This was SVN commit r3518.
2006-02-15 23:50:24 +00:00
9de2ec0c20 ObjectBase.cpp: replace incorrect RNG with rand(min,max)
lib: remove rand_up_to - superceded by rand(min,max)

This was SVN commit r3515.
2006-02-15 04:03:29 +00:00
5081b38c43 debug: remove old prototype
file_cache: use new remove_least_valuable interface
zip: add dox

This was SVN commit r3514.
2006-02-15 03:03:17 +00:00
36fa5ec2bf * clean up CLightEnv a bit
* add CLightEnv::m_TerrainShadowTransparency
* shadows will let a fraction of diffuse light through
* added JS LightEnv objects, so the lighting environment can be changed
  from the console
* new element TerrainShadowTransparency supported in the scenario .xml
format,
  changed cantabrian_generated with an example

This was SVN commit r3513.
2006-02-15 00:45:16 +00:00
1560a17dfb Rendering related fixes:
- explicitly enable blending in the ProfileViewer (fixes display bug)
- adjust luminance map based shadows to look roughly the same as depth
texture
  shadows (minus self-shadows, obviously)
- default depth texture path will not touch TexParameters any longer

This was SVN commit r3511.
2006-02-14 20:38:51 +00:00
7dee30e24c - Terrain self-shadows (only noticeable with a low angle of sun)
- explicitly split ambient and diffuse
- add renderer.shadowZBias to bias depths in the depth texture
  and avoid flickering artifacts caused by Z fighting
- cantabrian_generated uses new light values so that shadows aren't
pitch
  black

This was SVN commit r3508.
2006-02-13 14:18:20 +00:00
pyrolink
10d84599e9 This was SVN commit r3507. 2006-02-13 03:32:15 +00:00
pyrolink
b3a5c6f8af This was SVN commit r3506. 2006-02-13 03:31:45 +00:00
pyrolink
eede9c0f7b This was SVN commit r3505. 2006-02-13 03:31:26 +00:00
pyrolink
5680fcf687 This was SVN commit r3504. 2006-02-13 03:30:34 +00:00
de493d92dd Reset point width and line width in various places around the game code.
Linux build: Add a const void* hash function.

This was SVN commit r3500.
2006-02-13 00:59:59 +00:00
c4e3037e60 adts: add LL_OPT_* defines that enable optimizations (some only make sense if there are tons of files, and need to be able to disable them for thesis). realized this would be perfect application of policy template classes, which will replace this.
fix crashdumps: was failing to write out to file (underlying cause:
current directory no longer being set)
app_hooks: add get_log_dir; used by debug and wdbg_sym

minor improvements/documentation in archive+compression+file_cache+zip

main: remove dead ScEd code

This was SVN commit r3498.
2006-02-11 22:49:09 +00:00
ccd43b4b49 Explicitly enable blending during console rendering.
This fixes a bug where the console wouldn't display properly unless a
unit
was selected (or some other obscure condition was true)

This was SVN commit r3496.
2006-02-11 18:53:32 +00:00
9f055eddb0 Shadow rendering can use depth textures, as a preparation for
self-shadowing and shadows on models in general.
Usage of depth textures can be toggled using
?renderer.useDepthTexture = true/false in the JavaScript console.

This was SVN commit r3495.
2006-02-11 18:04:32 +00:00
livingaftermidnight
58da2342c2 At last! Finally! Particles rendering in the game! The emitter can be found at the origin (0,0,0). I just need textures and billboarding with the camera.
This was SVN commit r3493.
2006-02-11 09:40:04 +00:00
livingaftermidnight
adf7c66788 Added particle stuff.
This was SVN commit r3492.
2006-02-11 09:39:15 +00:00
livingaftermidnight
5760315cdf Added particle stuff.
This was SVN commit r3491.
2006-02-11 09:37:35 +00:00
livingaftermidnight
5fdccd06ba Added particle stuff.
This was SVN commit r3490.
2006-02-11 09:37:01 +00:00
livingaftermidnight
ef7f6e35bd This was SVN commit r3489. 2006-02-11 09:36:21 +00:00
66c9c1fbf5 Replace old shadow matrix calculation; the sun really is a parallel light
source now.

This was SVN commit r3488.
2006-02-11 00:26:40 +00:00
21f8f8555e adts: remove_least_valuable safely handles empty cache
lib: add u32_hi/lo
archive: move archive builder logic here from vf_optimizer
file_cache: add flush() call - used when simulating cache
vfs_optimizer: WIP, not yet functional: file gatherer, 50% of TSP tour
generator

This was SVN commit r3486.
2006-02-09 05:59:33 +00:00
b17b43b525 don't complain if attempting to open non-zip files (happens when scanning mount point directory)
This was SVN commit r3482.
2006-02-07 07:16:02 +00:00
pyrolink
ad4fe4ae96 Queue binding
This was SVN commit r3479.
2006-02-05 03:45:23 +00:00
pyrolink
2e92baf497 fix: no longer crashes when attempting to remove node from empty track
This was SVN commit r3478.
2006-02-05 03:43:21 +00:00
pyrolink
20c8dd4e37 Test track queue thing
This was SVN commit r3476.
2006-02-05 02:51:02 +00:00
pyrolink
195affefee Queue hotkey-watch the test cinematic...looks good on my test map, ask if you want me to send the map to you (it actually orbits around some units on that map).
This was SVN commit r3475.
2006-02-05 02:49:33 +00:00
920795fd85 file_cache: add refcounting to ExtantBufMgr (required for correctness)
This was SVN commit r3473.
2006-02-04 23:32:01 +00:00
92fb5450bc CVFSInputSource clean-up, added headers to adts.{h,cpp}
This was SVN commit r3472.
2006-02-04 22:44:52 +00:00
7bf48e95c4 add FILE_LONG_LIVED flag when opening XML file in the process of building XMB (avoids warning)
This was SVN commit r3471.
2006-02-04 22:31:25 +00:00
67f8087b6f Don't hack around low RAND_MAX values when RAND_MAX is high.
This was SVN commit r3469.
2006-02-04 19:12:09 +00:00
2f438a6889 cache_allocator bugfix: do not attempt to coalesce allocations that are at start/end of committed region. fixes self-test failure.
This was SVN commit r3466.
2006-02-03 21:44:09 +00:00
debd047638 proper definition of wchar_t (if needed; currently not)
This was SVN commit r3465.
2006-02-03 20:45:36 +00:00
987a6b7d4e fixed wchar_t issues; now correctly separates utf16, CStrW and jschar.
NOTE: wchar_t should be defined as a built-in type; no more need to
define manually or change project settings.

adts: disambiguate iterator type; add operator- as required by VC8
std::equal() implementation
precompiled: squelch stupid warning (that informs us that array members
are now actually default-initialized as called for by C++)
file_cache: remove debug variable

This was SVN commit r3464.
2006-02-03 20:36:15 +00:00
1227cb2f6d adts: add RingBuf self-test. RingBuf: make entry#0 the 'head' and pop_front a no-op if empty.
allocators: allow pool_create at NLSO ctor time
lib: add rand() function based on libc rand and self-test. (this allows
easily returning a random number within a range, and avoids a number of
pitfalls - the naive rand()%range approach is baaad)
precompiled: add self_test.h, so that self tests won't be accidentally
disabled by forgetting to include the header

file_cache: add self-test; fixed 2 bugs that exposed (was incorrectly
splitting large blocks and not setting class_size bit properly). fix
weird corner case in BlockMgr (attempting to free LRU block but it is
locked).

file_io, wdbg_sym: tiny fixes

This was SVN commit r3461.
2006-02-03 04:02:53 +00:00
8ed6965d18 fix crash that happened after editing file while game is running. vfs_tree's tree_root object was being destroyed but not recreated when rebuilding the VFs tree. fixed that as well as correctly freeing all TNode memory upon rebuild.
This was SVN commit r3458.
2006-02-02 05:20:33 +00:00
7862e79e84 adts: optimize landlord algorithm at advisor's request (only relevant if we have tons of files in cache)
trace: make note of IO size

xmlutils: fix old remnant of Handle vfs_load return type.

This was SVN commit r3456.
2006-02-02 04:11:07 +00:00
792d1d5f80 gcc implicitly makes inline functions static, so don't make those functions
inline (since they have to be linked, they cannot be inlined anyway)

This was SVN commit r3454.
2006-02-01 01:33:59 +00:00
d11fcc8257 file_cache: bugfix in CacheAllocator
hook up file_stats; implemented stats_dump (gives somewhat detailed
report at exit)

This was SVN commit r3448.
2006-01-31 07:48:32 +00:00