Commit Graph

809 Commits

Author SHA1 Message Date
4a4269824b Add more vararg error-checking annotation
This was SVN commit r7073.
2009-08-04 16:08:41 +00:00
c93db6d057 Fix some GCC warnings
This was SVN commit r7067.
2009-08-02 19:52:31 +00:00
ebac85ee81 # hopefully support non-admin accounts and unwritable directories by moving output folders to home/appdata
the old behavior (using directories under binaries/) can be kept by
passing -writableRoot on the command line.
the first game load will be slower than usual due to re-creation of
cached XMBs.

This was SVN commit r7065.
2009-08-02 11:07:42 +00:00
c8cfd8b40b # groundwork for separated data/cache etc. directories (XDG)
remove path.cpp (it was based on the premise that all data files lie
below binaries/data)

This was SVN commit r7063.
2009-08-01 19:37:38 +00:00
cdfb58a62f Fix some more GCC warnings
This was SVN commit r7045.
2009-07-28 09:27:56 +00:00
38782c4606 Fix infinite loop on writing maps with cinematics (reported by GCC -Wextra)
This was SVN commit r7044.
2009-07-27 18:33:56 +00:00
cf17fe13ce # Added test for old Collada import error.
This was SVN commit r6918.
2009-06-23 17:47:37 +00:00
1743645fd3 Simplify the overly-complex CppDoc-breaking file headers
This was SVN commit r6832.
2009-04-18 17:51:05 +00:00
c9fa7f13d9 Add GPL header
This was SVN commit r6830.
2009-04-18 17:00:33 +00:00
5bd6cc0f02 Fix some no-newline-at-end-of-file warnings
This was SVN commit r6819.
2009-04-13 17:45:43 +00:00
fbaabe473e # Tweak the default lighting conditions
as per Michael's instructions

This was SVN commit r6809.
2009-04-05 18:40:20 +00:00
2bc48fc1e7 Stop relying on XML default values from DTDs
This was SVN commit r6767.
2009-03-23 21:35:26 +00:00
121faff0e8 #Added reading of particle settings from XML.
Added CEmitter::LoadFromXML method to load particle settings from XML
files.
Made Update code generic and moved from CDefaultEmitter child class up
into CEmitter base class.
Cleaned up code in general and removed unused member variables.

This was SVN commit r6691.
2009-02-19 00:19:06 +00:00
8d9b9ca413 Support multiple props on each attachpoint. Fixes #242
This was SVN commit r6689.
2009-02-18 10:36:27 +00:00
b51353ae0b Use NONCOPYABLE macro, to avoid ICC warnings
This was SVN commit r6589.
2009-01-03 18:40:28 +00:00
5228800b73 # Fixed Linux build
Use noncopyable instead of boost::noncopyable. (But maybe this should be
changed to the NONCOPYABLE macro instead?)
Use boost::filesystem::wpath::file_string instead of
external_file_string, since the latter varies between std::string on
Linux and std::wstring on Windows.
Use wcstombs instead of wcstombs_s.
Use rtl_AllocateAligned instead of _mm_malloc.

This was SVN commit r6574.
2009-01-02 21:19:41 +00:00
34b418e0c1 slight improvement, use ARCH_X86_X64 instead of ARCH_IA32||ARCH_AMD64
This was SVN commit r6411.
2008-09-27 10:23:05 +00:00
4425489c12 Added automatic "root" prop-point to meshes from the Collada converter.
Fixed reported actor name in prop-not-found error messages.

This was SVN commit r6352.
2008-09-09 22:30:14 +00:00
2624069993 replace most BIT macros with a Bit() template for better 64-bit safety
test_bits: add tests for all routines in bits.h
hpet: add safety check
unit.h, bits.h, DOMEvent.h: change T(~0) to ~T(0) (required when T is
64-bit)

This was SVN commit r6335.
2008-09-06 21:15:53 +00:00
09f97a3422 Some fixes for OS X:
- Find enet properly
- Type conversion of size_t's in JS

This was SVN commit r6324.
2008-08-11 04:18:10 +00:00
b979033385 Stopped CLogger outputting error messages with debug_printf while in test cases that are intentionally triggering errors.
This was SVN commit r6259.
2008-07-19 19:02:27 +00:00
0f9294ce17 Fixed some strict aliasing warnings
This was SVN commit r6252.
2008-07-19 00:36:42 +00:00
8e86d29301 dehydra fixes (mostly copy-ctor warnings)
This was SVN commit r6239.
2008-07-17 14:23:51 +00:00
4027a8f11b dehydra-inspired fix: get rid of all using namespace std (potentially confusing / pollutes namespace).
Long iterator type names are better expressed via typedefs, anyway :)
(or 'auto' keyword of upcoming C++09)

This was SVN commit r6226.
2008-07-13 21:22:03 +00:00
3c411dd174 large batch of Dehydra static code analysis fixes
(mostly passing arguments by const reference and checking LibError
return codes)

This was SVN commit r6214.
2008-07-12 10:45:11 +00:00
e3d60ad0b2 fix inadvertent dependency on sse2
This was SVN commit r6167.
2008-07-01 20:27:37 +00:00
b79375a0c5 color conversion: avoid type punning by returning SColor4ub directly. that required a non-extern-C declaration of the SSE function, so i replaced it with straightforward intrinsics.
ia32: no longer needs #if since build system ensures it's not compiled
on amd64

This was SVN commit r6164.
2008-06-30 19:08:29 +00:00
a3696c0b91 premake: detect processor architecture from script
lib/sysdep: clean up by moving OS and cpu-arch folders into "os" and
"arch" folders

This was SVN commit r6162.
2008-06-30 17:34:18 +00:00
58407c7438 workaround for invalidId issue (fixes windows build)
class static const member apparently sometimes requires external linkage
and enum causes conversion warnings, so go with file-scope constants.

This was SVN commit r6161.
2008-06-30 17:31:09 +00:00
d977cdc89b Added simple test for the float->4ub color conversion
This was SVN commit r6154.
2008-06-29 10:13:40 +00:00
6f0be5ce94 Even static const's need to be defined, in case the compiler can't inline the constant value
This was SVN commit r6153.
2008-06-29 10:12:52 +00:00
010cbdd283 More uint/size_t fixes
This was SVN commit r6116.
2008-06-26 07:48:42 +00:00
04127c7af3 fixes/improvements to lib code from work
- topology.cpp: modify interface due to thread-safety issue. caller is
now responsible for ensuring the first _Detect call isn't reentered;
everything else is safe.
- fix thread-safety issue in wnuma; use winit mechanism to ensure it's
ready before use
- VFS now takes a cacheSize parameter (required for being able to
disable read-only file caches for the image loader at work)
- allow dynarray that isn't actually holding memory
- debug_stl: VC9 fix (disable this code except on the exact STL version
on which it was tested)
- zlib, lib_api: changes to macro used to toggle between static and
dynamic linking
- add boost filesystem header in external_libraries
- amd64: cpu_ topology functions are now provided by x86_x64
- cpu: remove cpu_ClockFrequency (dangerous, may be tempting to use
during WHRT init which would cause a crash). use x86_x64_ClockFrequency
or os_cpu_ClockFrequency instead.
- werrno: cope with newer boost versions
- wmman: follow SUSv3 in rejecting zero-length mappings

This was SVN commit r5954.
2008-05-13 19:43:02 +00:00
ffdff6888d add NUMA and shared-L2-cache detect code (required at work)
enable most of IA-32 specific code to be used in amd64 (resides in
directory lib/sysdep/x86_x64)

bits: add IsBitSet
remove mem_PageSize (use os_cpu_PageSize instead)
cpuid: change interface to allow gracefully supporting later
subfunctions that require input parameters
amd64_asm.asm: add amd64 implementation of cpuid
cpu: move functions provided by OS to sysdep/os_cpu.cpp
cpu topology: avoid trouble when process affinity is set by remapping
processor numbers to 0..PopulationCount(processAffinity)
topology.cpp: move ex-ia32 topology code here.

This was SVN commit r5945.
2008-05-12 18:15:08 +00:00
c0ed950657 had to remove uint and ulong from lib/types.h due to conflict with other library.
this snowballed into a massive search+destroy of the hodgepodge of
mostly equivalent types we had in use (int, uint, unsigned, unsigned
int, i32, u32, ulong, uintN).

it is more efficient to use 64-bit types in 64-bit mode, so the
preferred default is size_t (for anything remotely resembling a size or
index). tile coordinates are ssize_t to allow more efficient conversion
to/from floating point. flags are int because we almost never need more
than 15 distinct bits, bit test/set is not slower and int is fastest to
type. finally, some data that is pretty much directly passed to OpenGL
is now typed accordingly.

after several hours, the code now requires fewer casts and less
guesswork.

other changes:
- unit and player IDs now have an "invalid id" constant in the
respective class to avoid casting and -1
- fix some endian/64-bit bugs in the map (un)packing. added a
convenience function to write/read a size_t.
- ia32: change CPUID interface to allow passing in ecx (required for
cache topology detection, which I need at work). remove some unneeded
functions from asm, replace with intrinsics where possible.

This was SVN commit r5942.
2008-05-11 18:48:32 +00:00
af6694262a cleanup:
remove ONCE(ScriptingInit) constructs, replace with direct call from
GameSetup
revised GameSetup's InitScripting (organize into groups)
JSCollection: remove #define of two concrete collection types (made
typedef, moved to their respective entity.h and player.h)

This was SVN commit r5871.
2008-04-06 14:03:23 +00:00
4dc92352fc vfs_lookup: fix bug when creating physical directories via VFS
CollageManager: avoid creating zero-length files to avoid VFS compaints
test_MeshManager.h now runs correctly without errors/asserts
XMLUtils.cpp: bugfix (pointed out by Philip)

This was SVN commit r5855.
2008-04-05 19:47:57 +00:00
292975834b # remove potential confusion that was the source of map load/store bug
merge FilePacker and FileUnpacker into FileIo.
add CppDoc documentation
make clear what kind of 'size' is meant (file/buffer vs payload)

This was SVN commit r5599.
2008-02-04 11:40:42 +00:00
7773b9b204 # Some fixes to projectiles
- Removed use of erase() in the middle of iterating through projectiles
in CProjectileManager - that was dangerous! Replaced projectiles vector
with a linked list to make it easy and efficient to delete elements in
the middle.
- Fixed animation. It seemed like a problem with updating the Y position
came up and was more apparent as we lowered the turn length.

This was SVN commit r5593.
2008-02-03 09:10:15 +00:00
e9c34cc04c VS2008 compatibility
This was SVN commit r5561.
2008-01-17 23:07:26 +00:00
6541294ebf More Linux build fixes
This was SVN commit r5539.
2008-01-08 00:09:52 +00:00
a859562ea7 improvements and fixes:
- properly differentiate between buffer/offset alignment and length
alignment (relevant since block size has been increased to 256k)
- use VfsPath for most game paths instead of CStr
- clean up timer interface and implementation
- self-tests no longer crash
- file_cache.cpp: fix for the case where allocation fails (prevent
deleter from seeing a null pointer)
- allocators: move all shared_ptr-related stuff to its own component;
add DummySharedPtr
- codec: disable checksums (important for performance at work)
- File: made into an interface class to avoid export problems. not
entirely sure about this..
- vfs_path.h, path.h, os_path.h: proper fix for using
fs::change_extension and similar utility functions with derivatives of
basic_path
- lib_api: automatically link against import lib if building lib/ as a
DLL
- path_util: remove unused functions (this component is deprecated)
- compiler.h: add INLINE
- Xeromyces.cpp: pass PIVFS so that GetXMBPath works in self-test
(should do this mostly everywhere rather than have one singleton g_VFS)

This was SVN commit r5537.
2008-01-07 20:03:19 +00:00
5529977ecd fix: CLogger's ELogMethod is now inside the class and does not use names that are vulnerable to macro destruction (fixes a conflict with Windows system header's #define ERROR)
This was SVN commit r5532.
2007-12-29 16:22:23 +00:00
8667ea74c8 fixes and improvements
- directoryPosix: replace most methods with boost filesystem (but not
all: the latter cannot efficiently enumerate files AND query their
size/mtime)
- AllocatorChecker: better name for member functions
- file: move the File class here
- trace: bugfix
- io: move UnalignedWriter to write_buffer.cpp (basically the same
thing)
- vfs: remove unnecessary "vfs" warts from variable names
- vfs_tree: VfsFile now stores single Name/Size/MTime fields instead of
the FileInfo record (less clunky)
- vfs_path: use boost filesystem's version of the basename/extension
functions
- lf_alloc: remove (no longer necessary, won't be finished - not worth
the trouble)
- path_util: remove path_foreach_component (replaced by better path
traversal logic) and PathPackage (obsoleted by fs::path)

! resource loading code now receives VfsPath as its filename. there is
also OsPath (native absolute path) and Path (relative to binaries/data)

- tex is now independent of file loading code; it just en/decodes
in-memory buffers
- wdll_ver: clean up, use smart pointer to simplify bailout code
- wsdl: remove nonexistent failure path from calc_gamma (cruised by here
because SDL_SetGamme is failing once after a cold boot at work)
- wsnd: simplify OpenAL DLL search, use boost::filesystem
- wutil: Wow64 redirection is now packaged in a (RAII) class

This was SVN commit r5525.
2007-12-22 18:15:52 +00:00
e2eb5b2610 part4: adapt codebase to changes in lib/
mostly straightforward except for CVSFile / Filesystem. moved the former
into the newly created latter component. removed VFSUtil entirely (that
functionality is available from lib/file/file_system_util.h)

Xeromyces.cpp: simplify buffer handling since smart pointers are now in
play. also use WriteBuffer instead of membuffer.

This was SVN commit r5519.
2007-12-20 20:21:45 +00:00
ee0c58dbc2 fixes for the relocated res/file/archive stuff (adjust include paths)
also moved vfs_optimizer into archive directory

This was SVN commit r5389.
2007-10-06 07:45:15 +00:00
f4adce44bf cleanup:
- callbacks now have a uintptr_t "cbData" parameter (instead of
haphazard void*/uintptr_t, cb/ctx/data)
- resource loading code now more uniformly deals with u8* pointers
instead of void*

allocators: add support for page_aligned_alloc via boost::shared_ptr.
add evil hack to avoid the need for default ctor and ensure alignment in
SingleAllocator
archive: improve Decompressor
compression:
. near complete rewrite (previous code was a poorly factored mess)
. fix bug related to buffer allocation
. no longer provide get_output API (prone to abuse)
. add call to get max. size of output buffer (for preallocation)

This was SVN commit r5370.
2007-09-25 09:39:20 +00:00
f5a2a141dc Fixed non-PCH compiles.
Removed a few global variables from Atlas.
Added call to srand(time).
Restored NotebookEvent in wxJS.
Fixed CPU-detection in Valgrind.

This was SVN commit r5318.
2007-09-02 23:38:58 +00:00
29610672f4 fix warnings
This was SVN commit r5106.
2007-05-28 14:25:07 +00:00
cded0936c5 # housekeeping
. update moduleInit mechanism and move it out of lib.cpp. now has a
thread-safe reference count and allows repeated init/shutdown (required
for self-tests)
. vfs now depends on h_mgr; h_mgr need therefore no longer explicitly be
shutdown (e.g. in self-tests)
. acpi: minor fixes
. cpu: AtomicAdd and CAS now take volatile variable (safer)
. mahaf: unload driver on shutdown (did this for DriverVerifier, but
it's 'cleaner' in general)
. wdbg_sym
. wfilesystem: get rid of manual declarations of deprecated functions;
implement them via trampoline instead

This was SVN commit r5086.
2007-05-21 23:24:56 +00:00
9d2acce9d8 # SwEng/cleanup
- deleted most old libraries/headers in codepit to avoid confusion (they
are now in SVN anyway). updated required-libraries-linux.txt accordingly
- moved rand() into separate file, out of lib.cpp
- removed CGUIScrollBarStyle.cpp to avoid empty-file warning
- wxwidgets.h: remove redundant #pragma lib and include wxw PCH
- move openal-specific stuff to external_libraries/openal.h
- cpu, bsd: macosx is-a bsd, so only test OS_BSD

This was SVN commit r5082.
2007-05-18 00:14:26 +00:00
80057a82e5 patch, gameview: fix typos, revise according to coding convention
improve CPU brand string detection
wposix: no more ONCE during init (not thread-safe). also remove
redundant round_up
fold string_s into secure_crt

vfs: small fixes+commenting improvements while calling VFS back into
memory

This was SVN commit r5054.
2007-05-10 20:47:17 +00:00
christian
6fa68cd957 fixed Shadow culling: second implementation
This was SVN commit r5052.
2007-05-10 15:28:59 +00:00
a34b759720 . split up lib.h/.cpp, include the remnants from PCH, remove (pretty much universal) include of it.
. timer, config: fix definition of ALLOW_RDTSC
. add movsx_be64 (for whirlpool), revise implementation, move to
byte_order, add test
. MAX -> std::max, remove those macros
. add timestamp to system_info as requested by philip

This was SVN commit r5050.
2007-05-09 21:01:11 +00:00
b755ddefda remove all author/modified by tags.
make include guards consistent.

This was SVN commit r5040.
2007-05-07 16:33:24 +00:00
christian
5cbb0b2fed This was SVN commit r5036. 2007-05-06 07:58:16 +00:00
4be0fe18a0 # SwEng
. major compat fixes for interoperation with wxw.
. add crashlog_sender (modified version of debgrpt wxw sample). compiles
but untested, will be changed heavily
further improvements:
. wposix no longer declares CRT functions. instead, use CRT headers..
but don't allow their (incorrect/non-POSIX) declarations to propagate to
users.
. split up win.cpp into wstartup, wutil, winit
. extern "C" -> EXTERN_C
. move sdl.* to lib/external_libraries and add png.h+zlib.h (fixes for
and include of the library)

This was SVN commit r5028.
2007-05-04 17:30:32 +00:00
73683b6109 # SwEng
. the massive renaming undertaking: camelCase functions -> PascalCase.
. add some cppdoc.
. minor additional renaming improvements: e.g. GetIsClosed -> IsClosed
. in entity code, replace constructs like "pvec = new vector; return
pvec; use *pvec; delete pvec" with a simple stack variable passed as
output parameter (avoid unnecessary dynamic allocs)
. timer: simpler handling of raw ticks vs normal timer (less #if)

This was SVN commit r5017.
2007-05-02 12:07:08 +00:00
be3f3bdbfb # SwEng / MacOSX compat
further cleanup to sysdep.h: avoid pulling in win and ia32; split header
up into stl, compiler, and the actual sys_* API. (all but the latter are
in PCH).

timer: also avoid dragging in ia32
win: move snprintf fix to posix.h
cpu: simplify reasoning about cores, now given as logicalPerCore (not
package)
vfs_optimizer: fix if archive building is partially disabled

This was SVN commit r5008.
2007-04-30 14:35:19 +00:00
pyrolink
684dbbe9ba #Preliminary end game conditions; cinematic and trigger fixes
Cinematic editor is less clumsy.  Forward and backward buttons now move
the camera to the next and previous nodes.

This was SVN commit r5000.
2007-04-27 03:05:26 +00:00
623e649acb # big refactoring in CPU-specific code, fix for dual core vs. HT detection
all cpu-related stuff is now defined in cpu.h (with cpu_ prefix and
fully encapsulated). fix quite brittle core/HT unit/package detection.
implement mkdir on VC8, where it is deprecated
add strdup on MacOSX
move ia32 code into separate subdir. functions implemented in asm are
called ia32_asm_*.
add some unix versions of sysdep functions (cannot test them)
timer: fix for amd64 linux

This was SVN commit r4995.
2007-04-25 18:19:35 +00:00
104118b7e0 (wasn't committed last time. contains changes related to dir_crete)
This was SVN commit r4993.
2007-04-24 21:49:26 +00:00
1fea26a0e9 # Update to technologies.
Made CTechnology inherit from CJSComplex, so that properties such as
resources can be added dynamically instead of being hardcoded in it.

Also removed some excessive debug output from GUI.

This was SVN commit r4980.
2007-04-22 01:09:50 +00:00
d2935684ff Collada: Integrated skeleton XML with game. Added some tests. Fixed memory leak when loading ill-formed XML.
Added TestLogger, so tests can check the right log messages were
produced.

This was SVN commit r4960.
2007-03-16 23:32:10 +00:00
fa45d214b3 # Added support for COLLADA skeletal animations.
Moved COLLADA-loading code into separate class, since it now handles
both PMD and PSA.
Desingletonised CSkeletonAnimManager, moved into CGameView.
Made Atlas load its icons with buffered IO, for possible efficiency.

This was SVN commit r4934.
2007-03-01 18:52:53 +00:00
fc111ecb08 # Minor optimisations and features.
Made CMatrix3D::Translate assume something sensible about the structure
of the matrix, so it doesn't have to do a matrix multiplication.
Added quaternion nlerp (but haven't used it anywhere).
Changed animation interpolation so it loops smoothly in the actor viewer
but (hopefully) doesn't interpolate dying units into a half-upright
pose.

This was SVN commit r4932.
2007-03-01 00:14:35 +00:00
pyrolink
a4c0ea9d07 #Cinematic changes
-Eliminated tracks, rotation is per node

This was SVN commit r4929.
2007-02-27 02:14:18 +00:00
c2b119e721 # Linux fixes.
Disabled CONFIG_USE_MMGR by default, since it seems unnecessary and it
makes debug builds slow (extremely slow under Valgrind) due to symbol
lookups when allocating memory.
Fixed minor warnings and errors.

This was SVN commit r4927.
2007-02-25 21:11:57 +00:00
faeb0a5cb6 WaterManager: don't try rendering if the textures haven't been loaded (e.g. when using the Actor Viewer).
GameView: pushed near clipping plane out a bit (to get more precision),
rounded far plane to power of two for no real reason.

This was SVN commit r4896.
2007-02-10 22:07:20 +00:00
49f7f31298 Undid map changes.
Used default camera settings more consistently.

This was SVN commit r4892.
2007-02-10 19:37:33 +00:00
bdbb2bcb16 # Updated unit animation code.
Added UnitAnimation class, to act as the interface between the entity
and actor. (Currently doesn't work very well, but it does make
animations loop smoothly and sometimes kind of makes them stay
synchronised.)
Fixed corpse animation - it now plays the final frame of the death
animation before turning static.
Fixed update/interpolate timings.
Added JS function saveProfileData.
Updated ffmpeg library.

This was SVN commit r4880.
2007-02-10 03:09:52 +00:00
5e3e78ca78 # Fixed some graphical and scenario editor issues.
Atlas: Changed video format to 640x480 and losslessly compressed. Added
most-recently-used files list. Stopped switching sidebar when selecting
tools, since it was getting annoying. Added Slow playback mode. Fixed
crash when resetting sim while projectiles exist.
Renderer: Added JS-accessible renderer.shadowMapSize to override the
size of shadow maps.
ShadowMap: Changed default depth texture bits to 24, since that seems to
go faster (see #180).
PolygonSortModelRenderer: Made more similar to other renderers, so that
the renderer.sortAllTransparent=true mode works better.
Projectile: Fixed update, so it interpolates smoothly.
Entgraph: Fixed promotion detection.

This was SVN commit r4876.
2007-02-09 17:04:55 +00:00
af2e5854be (Forgot to commit file)
This was SVN commit r4858.
2007-02-04 15:58:23 +00:00
7130b389db Atlas: Disable selected tool before saving, so unit-placement previews don't get saved as real units.
Misc: Removed redundant code.

This was SVN commit r4857.
2007-02-04 14:56:38 +00:00
117f3dfe4a Rough cinematic/triggers in map.
Fixed some issues with triggers.
JS command execution in Atlas.

This was SVN commit r4829.
2007-02-02 02:17:15 +00:00
8d0a7170f6 # Slightly tidied up string code.
CStr: Indented comments more consistently. Made some parameters
pass-by-reference, made some others not. Removed some useless methods -
Length (use length or empty), GetSubstring (use substr), LCase/UCase
(use LowerCase/UpperCase). Removed operator[] bounds-checking because
VS2005 does that anyway.
Maybe fixed noncopyable warnings on VS2003.

This was SVN commit r4828.
2007-02-01 14:46:14 +00:00
27b6ffe2d6 # housekeeping
sorry, update-workspaces + rebuild is necessary (moved boost/utility
into PCH)

- ps/ : committed additional documentation on behalf of Joe.
- lib/ : HAVE_C99 - replace with specific e.g. HAVE_NPRINTF; intended to
help with MacOSX compat (by no longer requiring us to lie about
STDC_VERSION)
- NO_COPY_CTOR -> boost::noncopyable

This was SVN commit r4825.
2007-02-01 01:34:17 +00:00
1e195ac519 Changed task unit triggers to use unit ID's properly.
This was SVN commit r4823.
2007-01-30 03:50:28 +00:00
465c0a037b # Fixed some trigger bugs.
- Conditions were not properly converted to JavaScript (not read from
the XML file correctly either).
- Added an OrderFromTriggers function so that triggers can give orders
which ignore fog of war.
- Fixed some spelling mistakes in TriggerSpecs.xml (parameter vs.
parameters).
- Moved trigger update to CSimulation update, which is more correct.

This was SVN commit r4821.
2007-01-29 22:21:25 +00:00
41cf5c6139 CinemaTrack: Avoided crashing in certain cases.
dll_ver: Fixed invalid free when running with OpenGL 1.1 drivers on
Vista.
GameSetup: Fixed spaces between sentences in error message.

This was SVN commit r4820.
2007-01-29 17:46:28 +00:00
adc8c64724 # General tidying.
Encryption: Deleted, just in case anyone was ever tempted to use it.
debug_warn: Removed redundant quotes around message.
oglCheck: Added error number to displayed messages, to help when
debugging errors.
Simulation: Fixed syntax confusion.
Entity: Preserve unit ID across entity-template changes (e.g. upgrades).
Atlas: Made some floating-point code less dodgy. Support number keys to
change player while placing units.

This was SVN commit r4814.
2007-01-27 02:36:33 +00:00
3573c4a4e3 # Optimisations for Linux
GCC: Don't export symbols from DSOs by default - see
http://gcc.gnu.org/wiki/Visibility

This was SVN commit r4812.
2007-01-26 18:26:45 +00:00
ee3243ff92 # Fixes for simulation speed in scenario edtior. Various code cleanups.
Game, Simulation, etc: Separated 'update' and 'interpolate', and made
'update' return whether it's going fast enough (so callers can decide to
do more updates per render). Changed some time variables to 'double' so
they have enough precision in long games.
Atlas: Added "Fast" playback button. Made simulation sometimes go at
real-time speed, if it's just slightly too slow at rendering.
VertexBuffer: Removed some non-useful glGetError calls.
Entity: Commented out redundant Tick code. Fixed syntax error in
disabled code that confused the IDE.
Aura: Changed string code again, to simply use ASCII instead of UTF-16.
(SpiderMonkey seems to handle it just as efficiently, for small
strings.)
Misc: Some more minor header-file cleanup.
SVN log: Added feed link.

This was SVN commit r4807.
2007-01-24 20:17:28 +00:00
6cfb96855a # Added initial play-testing support in the scenario editor.
Atlas: Added simulation play/pause/reset controls; automatically plays
while recording cinematics.
FFmpeg: Fixed broken output files.
MapReader: Fixed entity loading.
ObjectHandlers: Made unit preview more robust when the preview unit gets
destroyed.
Various: Replaced manual matrix construction with SetYRotation call.
Turned some more CStr8 back into CStr.
h_mgr: Optimisation - don't calculate slow debug-output strings if
they're never going to be seen (since it takes a few hundred
milliseconds).
TerrainRenderer: Made more tolerant of accidental negative times.
Entity: Fixed m_refd being out of date when deleteAll is called. Fixed
problems when doing an initializeAll...deleteAll...initializeAll
sequence.
SCN: Removed non-useful AoE3Ed code that never did anything.
SVNLog: Made output more valid and made titles more descriptive, so it
works properly in FF's live bookmarks.

This was SVN commit r4779.
2007-01-17 03:25:20 +00:00
pyrolink
31d1e14912 #Cinematic improvements; trigger features
-Cinematic rotation shouldn't suck anymore
-Triggers still suck

This was SVN commit r4777.
2007-01-16 23:22:25 +00:00
3f017c418c Removed some header files from header files.
Changed SoundGroupTable to use the right string type for the comparison.
Also changed from CStr8 to CStr because I prefer that spelling (and it's
more consistent with most other code).

This was SVN commit r4771.
2007-01-13 22:44:42 +00:00
f5bcb031ff Fix for GCC
This was SVN commit r4764.
2007-01-13 18:32:03 +00:00
ec69bccb2c # Tidied up some code.
- Made some classes not be singletons, since there's no reason why they
should be.
 - Made them non-global too (because globals have unclear lifetimes, and
make it harder to test things, etc). They're now owned by CGameView and
CWorld, and mostly accessed via g_Game or arguments (vaguely trying to
avoid the graphics code calling into the game code).
 - Moved CGameView implementation into pimpl, so the header file isn't
so heavy.
 - Changed a few pointers into references, to indicate that they're
never NULL.

This was SVN commit r4756.
2007-01-08 01:56:46 +00:00
15e7bae0ba Extra fixes
This was SVN commit r4731.
2007-01-01 22:56:24 +00:00
0bb0df5b2c # new year's cleanup (reduce dependencies, clean up headers)
- remove headers always included from PCH
- nommgr.h is only included ifdef REDEFINED_NEW (allows leaving out the
mmgr stuff)
- in lib/*.cpp, moved the corresponding include file to right behind the
PCH (catches headers that aren't compilable by themselves)
- byte_order no longer depends on SDL
- add debug_level (another means of filtering debug output; needed for
thesis)
- split posix stuff up into subdirs (lib/posix and sysdep/win/wposix).
makes including only some of the modules (e.g. sockets, time) much
easier.

This was SVN commit r4728.
2007-01-01 21:25:47 +00:00
603401dc09 # Bug fixes.
- Fixed a crash that was happening in pathfinding on maps where some
tiles had invalid texture names (from earlier versions of the game).
- Releasing the mouse over the minimap while dragging a selection band
will no longer cause the view to move there. Unfortunately, the bandbox
still won't properly "release". The bandbox input routine should ideally
be placed at a higher priority than the GUI, separate from the other
Interact.cpp routines.

This was SVN commit r4711.
2006-12-20 05:41:54 +00:00
f6de818ea8 # Added support for automatically loading 3d models in the COLLADA format.
* CMeshManager: Changed to check for .pmd and .dae files and convert
and cache as appropriate.
 * CModelDef: Fixed misinterpreted doc comments in.
 * lib:
   * Fixed init/shutdown sequences to support multiple VFS-using tests
correctly.
   * Fixed most reported memory leaks from the new leak-reporting test
system.
   * Fixed error when trying to dump debug data about fonts after
unloading them.
 * Added sphere dae/pmd data for tests.
 * Added output buffering to DAE->PMD converter.
 * Added precompiled COLLADA converter DLLs.
 * Removed old redundant conversion script.

This was SVN commit r4709.
2006-12-20 03:22:24 +00:00
13f2e3ca0c Tried compiling with ICC9 on Linux, which raised various issues:
* Fixed some bugs with incorrect macro usage (SDL_BYTE_ORDER vs
SDL_BYTEORDER, {MSC,GCC}_VER vs {MSC,GCC}_VERSION, OS_WIN/OS_UNIX in
projects where they're not defined).
 * Removed some redundant declarations of g_Console.
 * Removed some unnecessary semicolons.
 * Removed some unused variables.
 * Added throw specification to operator new.

This was SVN commit r4698.
2006-12-16 01:01:15 +00:00
173c56140c # Fixed skeletal animation algorithm.
* Skinning is done in a way that works when there's more than one bone
influencing a vertex.
 * PMDs now store vertexes in world-space instead of bind-space. (The
loader converts the old-version PMDs so they still work.)
 * Moved SkinPoint, SkinNormal into CModelDef so it could use them when
loading the old PMDs.
 * Made the FastNormals approach non-optional, so the inverse-transpose
bone matrices could be removed. Changed the explanation of why it's a
valid approach.
 * Quaternion: Made GetInverse assume that the quaternions have unit
length (which they do when they're representing 3D rotations).
 * lib: Added support for DDS files that aren't a multiple of 4x4 (most
useful for 1x1, 2x2, etc that are still powers of two).
 * Actor Viewer: Added white terrain texture to the minimal test mod, so
shadows are visible. Changed default so walk/run animations don't move
the unit along the ground.
 * Removed some redundant repetition in doc comments.
 * Removed some unnecessary #includes.

This was SVN commit r4696.
2006-12-15 16:09:30 +00:00
5d8bef5f6e Semi-broken skeletally-animated model COLLADA->PMD converter.
This was SVN commit r4691.
2006-12-12 02:11:24 +00:00
0e1eb62687 Undid my previous attempt to increase cull frustum, since it degraded shadow quality.
This was SVN commit r4686.
2006-12-09 02:30:19 +00:00
0caac67fe2 Updated cull camera to include slightly more objects, to reduce glitches with reflections and shadows.
This was SVN commit r4681.
2006-12-06 02:52:14 +00:00
ea766c5663 # Made XML writer more robust.
XMLWriter:
 - Added automatic escaping of attribute values, character data and
comments to ensure well-formedness.
 - Removed choice of encoding (it's always UTF-8).
 - Removed option for DOCTYPE / DTD; changed to standalone="yes".
 - Added pretty-print toggle.
 - Fixed bug when calling XML_Text multiple times per element.
 - Added tests.
MapWriter:
 - removed some redundant braces

This was SVN commit r4673.
2006-12-03 17:13:22 +00:00
4d8133f785 # Fixes for MSVC
Use _WIN32/__WXMSW__ instead of OS_WIN.

This was SVN commit r4668.
2006-12-01 20:34:28 +00:00
835003d525 # Fixes for GCC
Renamed 'not' to 'negated', since 'not' is special in C++. Added some
includes, etc.

This was SVN commit r4665.
2006-11-29 23:37:10 +00:00
pyrolink
1fe9c9fbcb I'm an idiot
This was SVN commit r4651.
2006-11-25 05:18:11 +00:00
pyrolink
0d0a767fa2 #Trigger framework, terrain flattening on building placement
This was SVN commit r4648.
2006-11-24 19:45:04 +00:00
e94199bfe5 Fixed sysdep/unix compilation
This was SVN commit r4647.
2006-11-18 18:15:31 +00:00
4dd04f9bea lib/config.h: re #155, define HAVE_PCH on non-windows systems too, if USING_PCH
is defined (defined by the premake scripts)
FileConverter.cpp: Fix wxString-through-valist (for no better reason
than being
annoyed by the warnings...)

This was SVN commit r4643.
2006-11-12 19:55:10 +00:00
db045c330b # Made Atlas compile on linux
graphics: basic terrain passibility
atlas: lots of changes to make atlas compile under linux
unix/X: more clipboard support - copy from 0AD to other programs
unix/debug: use sys_get_executable_name instead of hard-coded paths
... and lots of other misc. changes

This was SVN commit r4640.
2006-11-12 04:02:36 +00:00
a265a441fd # Fixed string handling for Windows/Linux compatibility.
* vsnprintf2: Made compatible between GCC and MSVC - it now always
null-terminates the buffer, and returns -1 on overflow. Fixes #158.
Added tests.
 * MeshManager: Use shared_ptr.expired() instead of checking for
bad_weak_ptr exception.
 * Xeromyces: Added tests for GetXMBPath, because it does unusual things
in sscanf which MSVC's /analyze complains about.
 * ConfigDB, ScriptGlue: Replaced some asserts with return-on-failure,
to avoid invalid array accesses when continuing after the assert (as
complained about by /analyze).
 * CStr: Removed "using namespace std". Added tests for handling of
invalid UTF-8.

This was SVN commit r4625.
2006-11-07 21:03:13 +00:00
75f2f9fd5f Avoid some warnings on GCC
This was SVN commit r4623.
2006-11-07 13:28:03 +00:00
f499676337 Changed player colour for actors to dark gray for Michael.
This was SVN commit r4619.
2006-11-07 02:48:27 +00:00
1f268b17bb GCC compatibility (fixed CStr.h case, got rid of a few warnings)
This was SVN commit r4581.
2006-10-20 01:06:43 +00:00
d36bc3a949 - Fixed a compile error on VS2003.
- Fixed some crashes that could occur when you end a game with units
mouseover'ed or with the building placer active (it tries to render them
after the game world is gone).

This was SVN commit r4543.
2006-10-11 13:37:13 +00:00
fa229121ec Bug fixes and more game setup options.
- Added "Screenshot Mode" and "Fog of War" game attributes. (Screenshot
Mode causes units to be initialized to Hold stance instead of Aggress
and also forces LOS to be All Visible. Atlas turn on Screenshot Mode by
default so units don't try to kill each other in there.)
- Modified LOSManager to allow disabling fog of war.
- Removed some debug message spam.
- Enabled line antialiasing for aura rendering and fixed some bugs that
caused strange effects (color was not set properly for the center point,
and when a unit was both mouseover'ed and selected, the aura was drawn
twice).
- Modified Stand stance to allow retaliation on attacks (normally Stand
will attack any enemy in LOS, but this is useful if a neutral unit is in
LOS).
- Modified pathfinder to not take into account terrain slope, which is
an expensive calculation - we'll eventually take into account terrain
type instead.

This was SVN commit r4527.
2006-10-08 17:39:46 +00:00
a2432adad3 # GCC 4.1.1 compatibility
which is just "class C { void C::f(); }" code, which other compilers
seem to have ignored.
Also removed HAVE_PCH from GCC because our build system doesn't have
PCH. Added necessary headers to make it compile again.

This was SVN commit r4437.
2006-09-30 15:46:40 +00:00
2fac02f40a # Actor Viewer tool: added controls to toggle shadows, ground and polygon counts.
Elsewhere:
Disabled stack-trace test because it gives me assertion failures.
Fixed some uses of snprintf (which doesn't always add a \0 to the end of
the string), then got bored so there are still lots of broken ones.
Probably should replace snprintf with something more like snprintf_s
(but non-fatal) or something.
Made CLogger output valid HTML (except for the potentially dodgy
doctype). Removed its memory-logger, since we never use it and MICROLOG
can be used instead for quick execution-tracing.
Added tests to make sure CLogger handles long strings properly (which it
didn't). Made CLogger not a singleton, so it can be tested sensibly.

This was SVN commit r4424.
2006-09-28 20:41:12 +00:00
cc8bf09cc5 Added 'float' flag to actors - fixes #153.
Fixed creation and selection of entities (and now actors) which float on
water.
Added ctrl+n/o/s keys to actor editor.

This was SVN commit r4417.
2006-09-28 02:05:56 +00:00
b6c1022566 # Improved actor-viewer tool (more viewing controls, support for random actor variations)
Also right-click-and-drag to rotate the camera vertically.
Fixed LookAt code (the algorithm in the gluLookAt man page seems to be
wrong).

This was SVN commit r4394.
2006-09-27 16:54:23 +00:00
2f53eea71a Actor Viewer: Added controls for wireframe, background colour, move-when-walking. Reduced CPU usage when 'playing' things with no animation.
Color: Moved SColor* structs into SColor.h, so they can be used without
indirectly including CVector[34]D.
Terrain: Added 'base colour', for the Actor Viewer to be able to
modulate the colour of normally-white terrain.
Removed some "using namespace std" (because it doesn't make the code
easier to read, and it defeats the point of namespaces, and the rest of
the code doesn't do it).

This was SVN commit r4392.
2006-09-26 01:44:20 +00:00
c14765989e # Introduce a Scene abstraction that allows the renderer to query visibility from multiple virtual camera positions.
This is the first step towards fixing #142

This was SVN commit r4385.
2006-09-24 11:25:11 +00:00
a63f49e582 Add gameView.culling and renderer.skipSubmit for debugging purposes.
This was SVN commit r4382.
2006-09-23 16:04:54 +00:00
a1a7dac59c # Integrated Actor Viewer and Actor Editor tools
ObjectManager: Removed ObjectTypes because it hasn't been used for
years.
Atlas: Fixed leak when saving with Xerces. Changed range of water
shininess slider.
Actor Editor: Relabelled "Freq" to "Ratio". Made modal dialogs use the
correct parent.

This was SVN commit r4376.
2006-09-22 17:43:00 +00:00
bfae07a0bc # Added more control for water shader
(Murkiness, colour, tint, reflection tint, reflection tint strength)

This was SVN commit r4357.
2006-09-18 18:09:07 +00:00
04b9809e0b Made CTerrain::getSlopeAngleFace even more "continous" at places where the slope changes rapidly (before, it only checked elevation forward and right, now it also looks left and up).
This was SVN commit r4340.
2006-09-16 20:16:42 +00:00
0baca62d61 # Fixes to terrain conformance and movement speed bonus.
- Simplified CTerrain::getSlopeAngleFace and made it work correctly in
all cases (before, it sometimes returned NAN and used an overly
complicated method based on 8 angle sectors instead of a "continuous"
method).
- Removed the EntityMovement event - instead, movement speed modifier is
calculated in C++ for performance.

This was SVN commit r4339.
2006-09-16 20:13:40 +00:00
8126769863 Linux fixes.
This was SVN commit r4333.
2006-09-14 23:03:16 +00:00
09b87e84ec #Bugfix: Shadows appeared to be rendered one frame too late
close #141

The problem was that the shadow matrices were setup in BeginFrame, but
GraphicsView calls SetCamera after BeginFrame. The solution was to move
the shadow matrix setup into CRenderer::SetCamera.

This caused a second problem because RenderReflections/RenderRefractions
used SetCamera to change the OpenGL matrices. Solved this problem by
distinguishing explicitly between the camera used for the scene as a
whole and the camera used to configure OpenGL. The latter can be a
virtual camera for shadow or reflection rendering and similar
render-to-texture effects.

This was SVN commit r4330.
2006-09-14 20:06:21 +00:00
aa6ca7d1e8 Modified world intersection so that you can also intersect with the water plane, which is useful for making ships move around as expected when you rightclick a spot on the water.
This was SVN commit r4319.
2006-09-10 20:38:39 +00:00
8e02ec84f9 Updated OpenAL to 1.1 (which no longer includes ALUT).
Changed player-id code a bit so the entity and actor and unit should
stay in sync more often. (The entity/actor/unit mixing still looks a bit
dodgy and unreliable, though.)
Simplified console help code.
Allowed init/shutdown to be done with the simulation/world/etc parts
disabled (so the actor viewer can load faster).

This was SVN commit r4289.
2006-09-02 21:20:25 +00:00
35e91718c5 # Added tool for viewing models and animations outside the game.
Atlas: Added ActorViewer. Moved GL canvas into separate class for shared
use. Disabled message-handling callback while blocked on the game, and
stopped creating dialog boxes inside the game thread in order to avoid
deadlocks (hopefully). Support multiple Views (for independent sets of
camera/update/render code). Recalculate territory boundaries when
necessary. Changed default list of animations to match those currently
used by actors.
# Tidied up more code.
Moved some more #includes out of .h files, to minimise unnecessary
compilation.
MathUtil: Deleted unused/unuseful macros (M_PI (use PI instead), M_PI_2
(use PI/2), MAX3, ABS (use abs)).
ObjectManager: Removed some ScEd-specific things.
Unit: Moved creation out of UnitManager, so units can be created without
adding to the manager. Changed CStr8 to the more conventional CStr.
app_hooks: Removed warning for setting multiple times.
win: Restored SEH catcher.
GameSetup, GameView: Removed RenderNoCull, because it doesn't seem to do
what it says it does ("force renderer to load everything") since we're
loading-on-demand most stuff and it doesn't seem especially useful since
we'd prefer to minimise loading times (but feel free to correct me if
I'm wrong). (And because it crashes when things need to be initialised
in a different order, so it's easier to remove than to understand and
fix it.)
PatchRData, Renderer: Work sensibly when there's no game (hence no LOS
manager, water, etc).
LOSManager: Use entity position instead of actor position when possible.
TerritoryManager: Allow delayed recalculations (so Atlas can issue lots
of move+recalculate commands per frame).
Cinematic: Non-pointer wxTimer, so it doesn't leak and doesn't have to
be deleted manually.

This was SVN commit r4261.
2006-08-28 17:36:42 +00:00
bc24974496 # sweng
forward declare SDL_event. remove SDL dependency of network code.
refs #140

This was SVN commit r4252.
2006-08-26 21:52:18 +00:00
7d3d8fdbf3 # move ps/Network into top level project (and static lib).
This was SVN commit r4249.
2006-08-26 20:25:37 +00:00
9fc485c9a6 # Fixes to the line segment frustum test.
This was SVN commit r4245.
2006-08-25 19:31:01 +00:00
pyrolink
50e5e9acd9 # Aura and territory rendering
-Auras now take additional parameters from XML, containing a tag for r,
g, b, and a.  No line thickness parameter yet.
-For territories, added function to frustum for determining if line
segment passes through the frustum.

This was SVN commit r4242.
2006-08-25 06:04:33 +00:00
6732af1ba9 # Updates to the order system, including shift-click queueing.
This was SVN commit r4240.
2006-08-25 04:24:06 +00:00
pyrolink
b62f53620f #Cinematic editor
This was SVN commit r4234.
2006-08-22 02:24:44 +00:00
dave
98697b4676 Mac OS X Compat
LightEnv - has byte order marks
Texture - conv from int to GLint wasn't allowed
JSConversion - to use isfinite you need the std:: namespace
	(this is temporary... atm I don't know why you can't call isfinite)
ScriptableComplex - when implementing methods it did not like default
values (they were removed from the cpp file)
timer.h - simple change

This was SVN commit r4231.
2006-08-19 20:24:49 +00:00
48e80bdfbc Fixed deunicodification of actor strings - need to be converted from CStr to std::wstring when passed to Atlas
This was SVN commit r4200.
2006-08-06 18:41:07 +00:00
44fe226dd2 # Housekeeping and pathfinder enhancements / optimization when dealing with ranged actions.
- Modified Xeromyces to no longer automatically convert element and
attribute names to lowercase, so that we can have camelCase names. We
should now be able to convert all the multi-word entity properties, like
pass_through_allies, to camelCase, like passThroughAllies, which is more
consistent with the rest of our JavaScript naming conventions. To
support the existing code that assumes lowercase element names, I made
the getElementID and getAttributeID methods (used in the EL and AT
macros) ignore case, and I changed any code that directly accessed
element names to use the right case. CEntityTemplate now converts
Names_LikeThis to names_likeThis (changing each separate "word" in the
name to camelCase). Changed the version letter in XMB filenames from A
to B to support this without requiring people to delete old XMBs.

- Enhanced the pathfinder's handling of contact paths, resulting in a
very large speedup for actions like attacking, construction, etc. The
problem was that the pathfinder used to not count a given state as the
goal unless it was exactly coincident with the target location. This is
fine when you order a unit to go exactly to a certain spot, but if
you're ordering a unit to build, gather or attack something, then the
target tile is impassable (because your target is there) and therefore
the pathfinder never declares a state final. As a result, the pathfinder
tries hundreds of extra tiles in case there is a long path that gets to
the goal, and after failing to find any path that reaches the goal, it
gives you one to the closest point it got to. To fix it, I made the
pathfinder take into account a radius around the goal in which it's OK
to be, which depends on the size of the target unit and the range of
your action.

This was SVN commit r4186.
2006-08-01 03:41:21 +00:00
554b9e537e - Changed actor selection sets to CStr8 rather than CStrW.
- Added more comments in ScriptableComplex.h/inl explaining how they are
split up and when to #include the inl.

This was SVN commit r4180.
2006-07-29 22:02:11 +00:00
3195893d1c # MacOS X compat (part 1)
- u_anim_name disambiguation
- fix implementation of finite (use our fpclassify instead of compiler's
routine)
- ä -> ae
- workaround for MAP_ANONYMOUS
- fix GLint in ogl.cpp
- add include for SIZE_MAX in string_s
- avoid PIC clobbered error and speed up rdtsc a bit
- add include for stat

This was SVN commit r4170.
2006-07-26 14:04:52 +00:00
37c87a6579 # housekeeping
add new JSUtil, automatically included via SpiderMonkey.h.
move JS_ASSERT there and rename JSU_ASSERT.
move scriptglue's REQUIRE_PARAMS there and rename to JSU_*
replace if(argc < x) bail() code with those macros.

This was SVN commit r4169.
2006-07-26 13:10:13 +00:00
90bfaf9c99 # housekeeping + bugfix in file trace recorder
entity.cpp: fix indenting (was using space instead of tab)
replace all instance of & operator=( with NO_COPY_CTOR
trace: fix bug reported by michael: if trace file is huge, indices would
keep on being recorded but data was cut off after a certain limit,
leading to invalid pointers (into garbage data)

This was SVN commit r4158.
2006-07-21 01:11:23 +00:00
c817566222 # housekeeping
replaced all (*) CStr / CStrW by-value params with const reference. hoo
boy.

please always perform this optimization (actually standard idiom) when
writing the code - it takes little work, tells the next guy that the
string won't be modified, and makes a large performance difference.

(* where possible.. a few require other changes and will follow later)

This was SVN commit r4151.
2006-07-20 14:37:58 +00:00
4630745625 # Updates to the entity bar display system by Andrew.
Bars and rank icons now scale with zoom level. I've left in the old
render functions for now, but they can be removed later.

This was SVN commit r4120.
2006-07-16 19:32:48 +00:00
3f91cbe3c1 # Brightened default ambient lighting
This was SVN commit r4109.
2006-07-13 22:41:49 +00:00
a56ec5bdcd Some cleanup - renamed CBaseEntity to CEntityTemplate, and removed JSInterface_BaseEntity.h and JSInterface_Entity.h (which were unused).
This was SVN commit r4091.
2006-07-13 03:29:33 +00:00
1034a980fe Added code for placement of socketted buildings.
This was SVN commit r4073.
2006-07-09 23:12:37 +00:00
7926b3d93c # Some groundwork for territories.
Entities with traits.is_territory_centre == true will act as territory
centres, and territory areas are calculated and displayed on the
minimap. It remains to display these areas in the game view and to make
Civ Centres "socketable" so you can build them on Settlements to claim
them.

This was SVN commit r4070.
2006-07-08 22:40:01 +00:00
pyrolink
a95c72d0c1 Upgraded console (text wrap, help text), cinematic stuff
This was SVN commit r4065.
2006-07-06 03:17:44 +00:00
600adac871 # housekeeping and bugfix in Loader queue
remove old instrumentation, fix warnings, add measured timing results
Loader: bugfix: no more memory leak whenever callback returns a warning
code. this was a loophole in the callback return value docs.

This was SVN commit r4048.
2006-06-29 22:52:50 +00:00
aeed96dafa # improvements to build system for asm files
split ia32_asm code up into memcpy, color
premake: add (windows-only so far) support for NASM include paths -
required when using %include. see rationale in vs.c
refs #124

This was SVN commit r4039.
2006-06-25 20:58:03 +00:00
92b9c07f95 Restoring SVN repository:
Greek basket texture

# New Greek vases

# housekeeping
documentation fix: trailing / in directory names is mandatory

# Atlas: Sky texture selection; save with maps

Atlas code tidying: Slightly nicer syntax for defining command handlers,
and some explanation of how it works

Automated build.

This was SVN commit r4008.
2006-06-21 22:37:31 +00:00
039f26f0c3 Fixed editor brokenness.
# More useful environment (water, lighting) editing
(now saved into the map files).
Fixed no-PCH a bit.

This was SVN commit r4002.
2006-06-11 07:03:59 +00:00
a553182f6a More header-file rejigging.
This was SVN commit r3993.
2006-06-09 18:32:00 +00:00
d39a4fac21 Premake: include precompiled.h in the project; set up dependencies for Atlas projects.
# Attempted to make compilation faster
by including as little as possible in some .h files, and moving it into
.cpp.
Fixed BaseTechCollection memory leak.

This was SVN commit r3992.
2006-06-09 16:44:16 +00:00
pyrolink
e4c40841b2 #Configurable game speed, techs, elevation attack bonus
-techs are not operational yet
-set the game speed with setSimRate() in the console or in the config
file under hotkey.speed.increase or hotkey.speed.decrease
-made a few other small fixes

This was SVN commit r3950.
2006-06-06 06:31:17 +00:00
5f7855f7f0 Simplification of #Include paths: relative names are used only for included files in the same directory as the including file; everything else uses the full path relative to source/.
This was SVN commit r3930.
2006-06-02 02:10:27 +00:00
9124f7266c Tidied up some include paths
This was SVN commit r3929.
2006-06-02 01:01:39 +00:00
aa9a1c4f29 Reflection and refraction cameras should now take more advantage of the textures' resolutions, by stretching the image according to the inverse of the screen's aspect ratio to cover it all without requiring a larger Field of View. This should result in higher-resolution reflections and refractions.
Also increased water repeat period slightly, to 17.

This was SVN commit r3919.
2006-05-31 22:37:23 +00:00
d605cb39ec # Atlas editor: Control over 'random' actor variations.
Actor variation selection (though not saved to maps, so not very
useful).
Added more levels of complexity to the waiting-for-game-to-respond
message pump, to fix reentrancy problems.
Use number keys to assign player to selected unit.

This was SVN commit r3913.
2006-05-31 05:27:02 +00:00
1ead202b24 # add CppDoc comments; prepare for automated testing
ia32: prepend CPUCap enum names and rdtsc with ia32 to avoid conflicts.
move all self tests into separate headers as required for Cxxtest.
adts: remove some dead code.

add CppDoc comments to debug, lib (with heavy cleanup), tex, tex_codec,
snd_mgr
slight improvements to path

tex: refactor; split out tex_decode and encode to allow self-test

This was SVN commit r3911.
2006-05-31 04:01:59 +00:00
03a08e00a5 # Fixed infinite loop.
Also fixed sectorDivs so it's always initialised, since the complaints
were annoying.
Camera: Added a const.
Super cavalry: Added required(?) aura attributes.

This was SVN commit r3906.
2006-05-29 03:28:54 +00:00
1a8cb85e08 Some water-related bug fixes:
- Underwater tiles will be tested against the frustum with a bounding
box including the water surface, so the water gets drawn even if the
terrain is off-screen.
- Transparent objects (e.g. trees) should now interact with water
properly. I did this by rendering them twice, first before the water, so
it overlaps the underwater pieces, then after, so the above-water pieces
overlap the water (the water now writes Z as well as colour to allow
this). Before, only the first pass was done, so the tops of trees were
covered by water. There might be more efficient ways of doing this - the
best could be for the transparent objects to be drawn with a shader that
always either discards a pixel or writes alpha of 1.0 instead of using
2-pass depth write then colour write.

This was SVN commit r3904.
2006-05-29 00:49:09 +00:00
a3b9d7d946 Fixed path of terrains.xml - was ".../types/grass//terrains.xml", which caused it to not be found, which caused terrain textures without their own .xml to be ignored.
Removed GetRandomTexture, since it's never used.

This was SVN commit r3888.
2006-05-21 23:22:55 +00:00
e6be7e36d2 FILE_WRITE_TO_MOD is now FILE_WRITE_TO_TARGET
ERR_(FILE|PATH)_NOT_FOUND -> ERR_TNODE_NOT_FOUND, ERR_NOT_(FILE|DIR) ->
ERR_TNODE_WRONG TYPE
path_util:
- path_append: bugfix (no more extraneous /); add support for appending
slash
- path_replace: bugfix (no more warnings for expected error)
- add path_last_component, path_foreach_component
- move some defs to the header that belong there from vfs.h/path.h

file: add dir_create; move PosixFile definition here and provide
accessor for fileio
vfs: no longer automatically append slash; instead, make sure caller
does
vfs_mount:
- mount_realpath: bugfix (strip trailing /), interface improvement
- document write_target; clarify MULTIPLE_MOUNTINGS; add support for
creating real dirs
vfs_tree:
- refactor TDir::add into find, add, find_and_add
- fix TDir and TNode for dir-ends-with-slash requirement
- split up lookup into lookup_cb and path_foreach_component
- add support for inserting dirs with given mount point: tree_add_path
(needed when mounting)

wposix: get rid of weird PATH_MAX = 260 (Win32 weirdness)


TextureManager: remove no longer needed SupportedTextureFormats
GameSetup, Xeromyces: setup XMB location to data/cache/mods/official/xmb
Util: HardcodedErrorString now uses error_description_r
VFSUtil, i18n: fixes for dir slash issue

Closes #79, #80

This was SVN commit r3874.
2006-05-17 14:48:18 +00:00
275a73851c # Added sky box as well as repair, heal and trample actions.
Closes #31, #32, #37. Refs  #46.

This was SVN commit r3865.
2006-05-16 04:41:37 +00:00
1e3f5f5d3e # Added some groundwork for technologies and fixed some small bugs.
- Entity templates are now per-player, along with an unowned
"unmodified" version of each template that should be used to find the
original values of the stats. This can be accessed in the scripts as
<template>.unmodified.

- Fixed a pathfinder crash when the last path from the engine had 0
elements (just ignoring this for now).

- Units should no longer become purple when they upgrade in rank.

Refs #3.

This was SVN commit r3863.
2006-05-13 22:11:46 +00:00
pyrolink
39e89c406e #Fixes to flank penalty, notifications, sectors, terrain conformance. Added speed bonus based on terrain slope.
-added NOTIFY_ORDER_CHANGE, which is used for flank penalty instead of
idle.
-entity speed is now actions.move.speed_curr for the current speed, but
the original speed is still actions.move.speed.  Changes take place in
entityEventMovemen.

This was SVN commit r3840.
2006-05-04 04:14:48 +00:00
66b898dca5 # Fixed saving over archived files
This was SVN commit r3837.
2006-05-04 02:56:06 +00:00
9e74e3a077 # Atlas updates: better unit ownership control; fixed bottom-bar display; fixed iterator problem in undo; renamed 'd' to 'msg' for consistency
This was SVN commit r3836.
2006-05-04 02:44:03 +00:00
a7594bb39c # GCC compatibility
This was SVN commit r3828.
2006-04-28 04:53:23 +00:00
64ef19475d # housekeeping
terrain: fix unused a90 etc. warnings by commenting them out
renamed ERR_TEX_CODEC_CANNOT_HANDLE to INFO_.. (to prevent the kind of
mistake that philip just fixed)

This was SVN commit r3805.
2006-04-24 01:50:32 +00:00
3d26549032 Fixed file properties - removed svn:executable and svn:keywords (left over from CVS conversion?) from all files; set svn:eol-style=native for *.cpp, *.h (and fixed files with inconsistent line endings)
This was SVN commit r3802.
2006-04-23 23:14:18 +00:00
2fbb899bb5 # Animate props.
tex: Reverted recent WARN_RETURN(ERR_TEX_CODEC_CANNOT_HANDLE) changes,
since (I think) it shouldn't warn about that being returned (because it
intentionally happens frequently).
XMLWriter: Trivial inconsequential optimisations (avoiding temporary
strings).

This was SVN commit r3801.
2006-04-23 22:22:18 +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
c81df59294 # Include headers for compilation without PCH
This was SVN commit r3774.
2006-04-19 05:30:02 +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
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
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
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
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
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
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
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
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
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
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
e2a11fabe8 fix warnings (VC7)
This was SVN commit r3542.
2006-02-19 21:16:54 +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
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
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
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
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
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
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
pyrolink
20c8dd4e37 Test track queue thing
This was SVN commit r3476.
2006-02-05 02:51:02 +00:00
06412a7751 allocators: bugfix (wasn't setting freelist to 0)
archive: afile_read bugfix (wasn't returning byte count)
byte_order: add to_leXX, implement read_leXX in terms of that, add
write_leXX (and also big-endian versions)
compression: support 0 length buffers + minor fixes
file: no longer support passing fn_len (that didn't work anyway due to
DynHashTbl find(const char*) interface); add FILE_DONT_SET_FN
optimization that prevents cluttering name cache.
file_cache: add logic to verify load/free/load/free sequence; add
FILE_LONG_LIVED flag to specify exceptions (e.g. XMB files that don't
free their buffer immediately)
vfs_mount/vfs_tree: bugfix (was mixing up portable and VFS paths)
vfs_optimizer: small fixes; creating Zip files now works
vfs_tree: add PathName that stores pointer to path and name component
for efficiency + convenience
zip: bugfixes (wasn't endian safe; incorrect handling of cmethod; forgot
to initialize ZipArchive members)

config: add -buildarchive flag
Xeromyces.cpp, FileUnpacker.cpp: add FILE_LONG_LIVED
mapreader: bump time estimate for ReadXML

This was SVN commit r3446.
2006-01-31 03:47:52 +00:00
pyrolink
6af039def8 -CinemaTrack-refined
GameView- commented out test track in constructor, and commented out
hotkey interface
NUSpline-added bounds checking and corrections
Hotkey-added cinematic hotkey (doesn't work though (see above) )

This was SVN commit r3442.
2006-01-29 23:25:04 +00:00
fcfa746244 Linux compat changes, fix for (really old) bug in VertexBufferManager shutdown, GUI header reorganization for gcc 4.0
This was SVN commit r3437.
2006-01-29 18:23:47 +00:00
7838627cd2 - vfs_load now returns error code and takes FileIOBuf; that must be freed via file_buf_free. if Handle is needed, use mem_wrap.
- remove ScEd hacks and CFont et al macro rename
- fix accursed bug in VFS buffer management that was causing ReadFile to
fail without error (not allocating enough padding)
- vfs_tree: bugfix in tree_lookup
- waio: temporarily disable sector size determination (pending better
approach - need to determine if using DVD drive)

This was SVN commit r3421.
2006-01-24 08:16:29 +00:00
f25de48559 - Seperate ViewCamera (eye position) and CullCamera (model culling, shadow
calculations) internally. Use ?gameView.lockCullCamera = true in the
console
  to move around while the CullCamera stays in place
- add CCamera::Render to visualize a camera's frustum
- use ?renderer.debugFrustum = true in the console to visualize the
frustum
  of the CullCamera

This was SVN commit r3405.
2006-01-22 19:12:30 +00:00
5ac92a3302 Advance water in sync with simulation and unit animations (so it stops when the game is paused).
Other miscellaneous tidyings.

This was SVN commit r3386.
2006-01-21 23:27:42 +00:00
f953258a9d Fix Linux build, don't EVER #include <windows.h> again!
Removed some apparently unnecessary #includes
Merged multiple M_PI definitions into maths/MathUtil.h
Add newline at end of file

This was SVN commit r3384.
2006-01-21 20:01:17 +00:00
pyrolink
b86ae011c9 Some loading stuff
This was SVN commit r3378.
2006-01-21 11:02:35 +00:00
livingaftermidnight
2ee40734e1 Removed file/folder
This was SVN commit r3372.
2006-01-19 11:36:17 +00:00
livingaftermidnight
fe8f7dd1fc Removed file/folder
This was SVN commit r3371.
2006-01-19 11:36:03 +00:00
livingaftermidnight
aef0a42780 This is the new particle engine. It's in and it compiles, but it's not implemented fully yet. Will get to that soon.
This was SVN commit r3369.
2006-01-19 11:19:55 +00:00
b889826a3d Some Linux compile fixes over the place.
Create TerrainRenderer, ShadowMap and WaterManager classes to divide
CRenderer's functions into more logical units.

This was SVN commit r3332.
2006-01-07 01:04:26 +00:00
pyrolink
763eb9311d Fixed starting rotation problem and made the first point of the spline drawn
This was SVN commit r3328.
2006-01-05 05:48:31 +00:00
pyrolink
07609972a8 Updated with NU splines.
This was SVN commit r3307.
2005-12-29 06:38:45 +00:00
14cb08fc20 Fixed a crash on units that could have props added & removed from them, such as javelinists. It seems that the CModel destructor was made to remove the prop point from the parent's prop point list, causing a problem in existing prop replacement code that tried to do the same thing.
This was SVN commit r3287.
2005-12-26 10:57:25 +00:00
3ea5fa5b46 Lots of fixes for the Linux build:
- renamed sysdep/unix/ functions where necessary
- more int -> LibError conversions in the sysdep/unix/ part
- added some explicit #include statements where necessary
- moved enum LibError/ErrorReaction declarations
  (gcc doesn't support forward enum declarations)

This was SVN commit r3267.
2005-12-17 22:00:54 +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
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
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
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
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
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
faaee7d1b5 Atlas: Terrain painting
This was SVN commit r3092.
2005-11-05 04:59:54 +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
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
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
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
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
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
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
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
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
52a8793450 Atlas: Bits of tool-related code.
Game: Large screenshots (with ctrl+alt+F2).

This was SVN commit r2994.
2005-10-24 01:53:03 +00:00
359f55700a file_open: cleanup
vfs_tree: move bucket allocator to allocators.cpp
allocators: add matrix self-test
zip: remove redundant timing code and add CHECK_ZFILE everywhere
ogl_tex: implement app hook for overriding gl upload caps
tex: add CHECK_TEX everywhere
TextureManager: only call LoadTextures once (instead of for each file
type)
debug: add hook for translating error messages; add filtering mechanism
to only show interesting debug_printfs (WIP). restructured code:
debug_puts is the sysdep part, while debug_printf does filtering and
then calls that

This was SVN commit r2990.
2005-10-23 23:57:59 +00:00
26d2fc71ad loaders: increase timeout interval (less time wasted in main loop during loading)
vfs: move public functions into vfs.cpp to avoid confusion (except
vfs_mount in vfs_mount.cpp, but that's obvious)
h_mgr: fix bug in filename display causing dir names to be truncated
main/gamesetup: replace 2 bools with flags; remove Atlas trampoline
functions (clutters up main.cpp)
atlas: use GameSetup.h instead of extern ..

This was SVN commit r2983.
2005-10-21 18:01:21 +00:00
32cfc6d807 minimap: now use GUI event system instead of polling. fixes broken click feature.
textureentry: add performance note
list, text: fix mousewheel direction
input: was going to add a deque to allow registering handlers in back
and front. obviated by minimap fix, though. cleaned up a bit and renamed
stuff (again, sigh).
loaderthunks: fixed weird alignment/padding warning

This was SVN commit r2979.
2005-10-20 15:27:39 +00:00
a81d7adee4 restructure terrain texture loading to first get a filelist, then do work for each file. this is slightly more efficient than iterating over dir and doing work for each (due to less seeks) but intended to fix an issue where files are created while iterating over the directory (this confuses VFS). the problem had come up after adding terrain XML files.
also restructured a few calls to avoid passing CStr by value down
multiple call levels (ugh)

This was SVN commit r2977.
2005-10-19 22:39:54 +00:00
bed9363bfe lib/input.h was old+bad code. fixed in_add_handler return type to enum; renamed EV_PASS to IN_PASS; no longer include sdl.h from other code (instead rely on input.h)
This was SVN commit r2975.
2005-10-20 17:44:56 +00:00
364e36128e g_YMinOffset declared in gameview.h instead of extern elsewhere
terrain: made const-correct
lib: Add round_up_to_pow2
minimap: cleanup. split user input and DrawViewRect out of Draw; add
m_Camera; made pointers const; user local x,x2 variables instead of
writing out m_CachedActualSize

This was SVN commit r2970.
2005-10-19 17:16:34 +00:00
b350f54162 ogl_tex: centralize OpenGL caps detection; allow user override for broken card/driver combos
- enable floating point exceptions (helps catch bugs)
file.cpp: improved error checking in dir_open/dir_next_ent code
vfs.h: expand docs; add note on patching + SCM
main: use spf (1/fps) to derive TimeSinceLastFrame (makes for smoother
updates)
timer: rename SUM_TIMER to TIMER_ACCRUE. interface change allows
unlimited number of timers (instead of static limit as before).
documented everything

This was SVN commit r2958.
2005-10-17 23:35:16 +00:00
953d2621dd timer: improved timer_add_client - no longer has fixed-size storage. btw, name will change here - not happy with SUM_TIMER.
GUI/input code: moved g_active, g_keys etc. into ps/Globals; it has its
own input handler as well

all users of fopen(): add file_make_full_native_path to get correct path
even though current dir = system/

This was SVN commit r2954.
2005-10-16 23:16:08 +00:00
d5e292657c zoom limit: carry over value of 25 that andrew had tried to set in main.cpp
This was SVN commit r2947.
2005-10-16 04:31:19 +00:00
af70f0136b GameView: made file-scope data static (prevents accidental/evil use from other files and name collisions)
TextureEntry: add SUM_TIMER around base color calculation
Zip: add SUM_TIMER around inflate/memcpy

main: re-removed g_MaxZoomHeight - this doesn't belong in the message
loop. it resides in GameView.cpp

This was SVN commit r2945.
2005-10-15 21:15:33 +00:00
7b31f0372b GameView: move camera lock params here
wsdl: add proper event queuing mechanism (no longer requires hacky
polling for changes and avoids WM_USER)
rename keys[] and mouse_buttons to g_keys and g_mouse_buttons
fix flipped mouse wheel direction; wsdl now sends up AND down event
(removed 'reset' hack in main.cpp)
main: clean up event handler and kill_mainloop

This was SVN commit r2934.
2005-10-13 18:05:55 +00:00
8435fb880c vfs_mount: bugfix: wasn't populating VFS from archive (cause of massive VFS slowdown recently). also fixed another overzealous validate check
ogl_tex: bind() implementation much simplified; also fix bug that set
TMU correctly when disabling texturing
wsdl: fix stdout.txt redirect; now works regardless of current
directory. also no longer disable file buffering except when in full
debug mode (because it's so slow). also add minimize button to caption
bar in windowed mode.

This was SVN commit r2919.
2005-10-12 23:48:44 +00:00
a1cddc4ac3 gameview, renderer: LoadWaterTextures is now a coroutine because it takes friggin forever (3 seconds). VFS performance is down by a factor of ten! investigating is on todo.
dyn_array.h -> allocators.h
ogl_tex: reenable performance warning
tex: comments
h_mgr: debug_printf if long filename is passed in (so we notice)
wsdl: squelch DestroyWindow warning. will look into the cause.
sysdep: slightly simplify "restrict" determination

This was SVN commit r2916.
2005-10-12 17:19:07 +00:00
990e343ae6 renderer: load/unload water textures (similar to alpha maps); do that in delay load and avoid leaking them.
GUIrenderer: add oglSquelchError

lib.h: add feq() (checks for floating point equality); remove redundant
if from SAFE_DELETE
maths: use new feq()
Model*RData, VertexArray: fix trivial warnings

This was SVN commit r2904.
2005-10-12 04:16:41 +00:00
c468eedbbb Sped up LOS rendering.
This was SVN commit r2880.
2005-10-09 08:14:42 +00:00
0ed2815c8b Added initial version of LOS, and updated minimap to show both LOS and water.
LOS issues still outstanding:
- LOS looks ugly because of quad tesselation into 2 triangles
- Quad tesselation is unspecified by OpenGL (in fact using GL_QUADS on
LOS quads seemed to give different tesselations than it did for the
underlying terrain quads, but terrain rendering also used GL_QUADS).
This should be fixed once we decide on the quad tesselation issue.
- Units with traits.vision.permanent set are visible through FOW even if
you havent seen them before; this should only be true when you have seen
them before. But it gets even more complicated - if a permanent unit
seen through FOW dies or gets upgraded or something, perhaps you should
remember the old version. I'm not completely sure how to do this
(probably involves cloning its actor somehow).

This was SVN commit r2876.
2005-10-09 03:43:03 +00:00
7ebdefec4b Atlas: improved brushes
This was SVN commit r2875.
2005-10-09 03:26:16 +00:00
8bc8bcb740 Atlas: more flexible brushes
This was SVN commit r2868.
2005-10-08 03:55:21 +00:00
29d6f420fd GameView: removed unused ancient camera code.
Terrain: nicer handling of negative map coordinates (mainly for Atlas
brush previews that fall over the edge).
Misc: reverted seconds->microseconds.

This was SVN commit r2866.
2005-10-07 21:09:29 +00:00
04650efe7a Lots of gcc -Wall fixes. The common ones:
- switch() statements don't handle all values in an enum
- missing \n at end of file
- non-virtual destructors in classes containing virtual functions
- order of initializers in constructor initializer lists
... some other stuff (signedness, nested comments, unused variables) as
well.

This was SVN commit r2864.
2005-10-07 15:24:29 +00:00
b8c2f424e7 glDrawRangeElements -> glDrawRangeElementsEXT (fixes compilation error; EXT/ARB/etc extensions need to be used for everything not in GL1.1)
Reinserted mu-like symbol.
Fixed some minor warnings.

This was SVN commit r2838.
2005-10-03 16:04:55 +00:00
6fc1f45fa6 Stab at fixing the VertexArray compile error on VC++.
Added float-to-byte color conversion, including an SSE assembler
version.
Model renderer: Push UV coordinates into a shared vertex array and use
bytes instead of floats for the color array, thereby, significantly
reducing
the total size of vertex arrays.

This was SVN commit r2827.
2005-10-03 03:41:42 +00:00
a05e712319 Added VertexArray & co. classes to simplify a flexible, render path dependent
vertex array layout.
Add CModelDefRData, a per-CModelDef render data class.

This was SVN commit r2826.
2005-10-02 21:11:11 +00:00
2790981eae CVSROOT: doesn't seem particularly useful now
ObjectBase: removed support for old actor format
Various: reduced sometimes-unnecessary header inclusions
Atlas: slightly nicer tool and message systems

This was SVN commit r2816.
2005-09-30 00:59:42 +00:00
d98abf0685 final refactor (i hope). split up fmt / int_fmt determination to allow override of fmt without overriding int_fmt (useful for unifont.cpp). this changed the signature of ogl_tex_upload. better explained flags in OglTex and warn_if_uploaded.
also a few improvements / stomped on some warnings.

This was SVN commit r2809.
2005-09-29 17:33:30 +00:00
a769783d5d Fix scroll wheel zooming on Linux.
Refactored HandleEvent into CGameView.

This was SVN commit r2800.
2005-09-28 23:57:55 +00:00
pyrolink
41aa9ebda1 Added CameraLock() which makes the camera scroll smoothly over terrain and makes sure it is within g_YMinOffset+Terrain height and g_MaxZoomHeight, which are declared in main.cpp
This was SVN commit r2790.
2005-09-28 03:49:11 +00:00
37e9fc0388 - update load times
- config: add proper HAVE_ macro for string_s functions rather than
checking MSC ver directly
- string_s: disable parts of the self-test that trigger errors if not
using the string_s.cpp implementation

This was SVN commit r2760.
2005-09-21 16:42:56 +00:00
e5dea3e5a1 Water source code :|.
This was SVN commit r2746.
2005-09-18 03:47:15 +00:00
a0a01e7a7d Linux/GCC Compat, added some includes, ported inline assembly stuff to gnu syntax (and misc. cleanup in ia32.cpp)
This was SVN commit r2702.
2005-09-12 23:37:52 +00:00
aa118403bb Terrain: CalcFromPosition, to convert world-space to tile-space.
ScEd: Compilation fixes.
Atlas: Screen-space to world-space conversion when editing terrain.
Wireframe option. Minor wxWidgets 2.6.1 fixes. AoE3Ed.

This was SVN commit r2698.
2005-09-12 20:04:26 +00:00
494d27bdd4 moved SAFE_DELETE to lib.h
dyn_array supports "wrapping" other types of memory (stopgap measure)
texture codecs now load via DynArray (intermediate step to all mem stuff
going through res/mem.cpp)
simplified tex codecs by doing as many checks as possible in
tex_load_mem ("template method"-esque)

This was SVN commit r2690.
2005-09-08 01:47:45 +00:00
6f10e8c09c Updated building placement cursor to make the object glow read and not be placeable if trying to place in an invalid area.
Also a small fix: made the selection bandbox not appear when the view is
being rotated using left+right drag (it doesn't make sense to show it
then).

This was SVN commit r2674.
2005-09-06 08:25:41 +00:00
f4c535a326 lib.cpp: forgot to use TEST (for self-test)
self_test: add dox (also to wiki)
tex_codecs: further work; renamed+reorg for clarity. separating codecs
from IO implementation

This was SVN commit r2654.
2005-09-02 18:38:25 +00:00
9ec828f6fd - both tex.cpp and ogl_tex.cpp had functions named tex_* - confusing. renamed to ogl_tex* to disambiguate.
- ogl_tex_bind now supports multitexturing (avoids need to get id and
then bind manually)
- provide nicer API for querying texture properties (no longer one big
getter). improved GUI determination of texture alpha.
- renderer: another see-if-texture-has-alpha and fixed alpha map code
(wasn't checking if all are same size. only worked because the first map
was larger than the rest

This was SVN commit r2647.
2005-09-02 02:54:02 +00:00
a10082d69b Minor fixes
This was SVN commit r2625.
2005-08-16 19:51:18 +00:00
b4ad393ee4 moved ps/X* to ps/XML/
premake: reflect 2 added and 1 removed source dir
add ps/Util - some helpful functions that were previously in main.cpp

This was SVN commit r2624.
2005-08-14 23:50:37 +00:00
dc027002c0 host of changes to accommodate Atlas:
- input.cpp allows feeding in events from the outside (will be used by
main.cpp and Atlas msg loop)
- most of main.cpp split into ps/GameSetup.*
- main.cpp is now a "controller" that drives the game via SDL events
(Atlas is another such controller that can override main.cpp). it calls
GameSetup functions to set up and processes messages.
- add functions to import AtlasUI.dll automatically

also, the usual refactoring ;)

This was SVN commit r2622.
2005-08-14 23:34:37 +00:00
4aa740bff5 - split up lib/res into file, graphics and sound.
- wposix.cpp: initial support for MEM_RESERVE and MEM_COMMIT semantics
in mmap
- cstr: removed no longer necessary serialization header
- xmlutils: wrap new() calls in nommgr/mmgr; allows tracking other
allocs in this file.
- add u64_from_u32
- various minor comments/improvements.

This was SVN commit r2604.
2005-08-12 17:06:53 +00:00
cd4273cd16 Oops, I broke it. Fixed by reinserting memory leak.
This was SVN commit r2596.
2005-08-10 01:27:33 +00:00
622ceeda94 - color -> colour
- add note on performance in TextureManager.cpp

debug_stl: more fine-grained #if STL_DINKUMWARE (gets this closer to
working on other STL implementations)
vfs.h: improved dox and moved vfs_path public functions here.
cursor: pass g_mouse_x as a parameter (SwEng)

This was SVN commit r2595.
2005-08-10 01:12:03 +00:00
b63bc42245 TextureManager: stopped memory leaks
wsdl: create window at expected size, and retrieve correct mouse coords
CStr: not ISerializable (=> not virtual)
Game: less excessive complaining, since the original problem seems to be
fixed
Entity: fixed evaluation order
Others: minor comments/etc

This was SVN commit r2591.
2005-08-09 21:26:40 +00:00
52ebd6ba11 scripting-interface improvements
- strict param count checks
- use ScriptingHost::RunMemScript instead of copy+pasted code
- replace duplicated parameter access code with macros

StringBuffer: use pointer instead of reference to allow
compiler-generated copy ctor
singleton: fix whitespace

This was SVN commit r2586.
2005-08-09 16:02:15 +00:00
a69ac0dee9 - fix w4 warnings
- add convenience macros for config_db(CFG_GET_SYS_VAL)
- VFSUtil::EnumDirEnts now uses flags instead of bool recursive
- UNUSED() for params, UNUSED2 (<- need better name) for variables
- config.h defines must be tested with #if (always defined) -> allows
detecting misspellings thanks to compiler warnings
- replace debug_assert(0) with debug_warn (its sole purpose)
- replace ScriptingHost::ValueToInt et al with ToPrimitive
- use nommgr.h to disable both mmgr and VC debug heap

This was SVN commit r2585.
2005-08-09 15:55:44 +00:00
b3a9ed2886 New terrain properties stuff, gcc compatability and updated unix debugging stuff
This was SVN commit r2581.
2005-08-07 21:58:36 +00:00
a04abf2967 Fail more quietly while loading
This was SVN commit r2565.
2005-07-30 20:12:41 +00:00
549150fe38 Atlas: simple camera control and terrain editing.
Terrain: added terrain-editing code to CTerrain, for better
encapsulation or something.
Console: simplified screen resizing.
Game/etc: removed some unnecessary header file inclusions.

This was SVN commit r2459.
2005-07-03 16:25:48 +00:00
e84b8bd017 Fixed regression caused by not understanding my code
This was SVN commit r2457.
2005-07-03 01:37:49 +00:00
2ea40a23a3 VS2005 compatibility fixes and warning adjustments:
Updated DLLs.
Added DirectX headers/libraries, since they're not in the platform SDK.
Fixed invalid STL iterator usage.
Disabled STL in stack trace, since it breaks.
Added comments for some reported warnings.
Corrected some apparent off-by-one errors.
Defined strlen_s to strnlen.
Probably broke pre-beta2 versions of VC2005.

This was SVN commit r2454.
2005-07-02 21:42:55 +00:00
ec6b78b252 rename assert2 debug_assert; use instead of all plain assert(), since there are no longer any issues (e.g. can't use while handling an exception)
This was SVN commit r2447.
2005-06-28 04:06:25 +00:00
d4617cbd3e Minor warning-fixes and miscellaneous tidiness
This was SVN commit r2416.
2005-06-20 22:04:08 +00:00
32772dbf71 So, ScEd updated to comply with terrain XML's (and it seems to work fine too!)
This was SVN commit r2414.
2005-06-20 17:34:17 +00:00
7577d224a6 Terrain XML loading, plus mouse/JS portability and some misc stuff to mix it up
This was SVN commit r2412.
2005-06-20 15:14:36 +00:00
e583af307f Updated autobuilder to update ps.pdb.
Animation files with filename="" are now ignored.

This was SVN commit r2368.
2005-06-02 18:04:20 +00:00
b657a1cbca Added CStr and some other things to precompiled.h, to reduce build times.
Altered CStr/UniDoubler's macros, to avoid polluting/conflicting/etc.
Fixed headers in non-PCH builds.
Used the _d version of vorbisfile*.lib in Debug builds.

This was SVN commit r2366.
2005-06-01 20:12:45 +00:00
MarkT
d6c4bf3302 Changes to actor speed specifications.
This was SVN commit r2350.
2005-05-27 00:38:30 +00:00
26b1cf5556 Random animations.
This was SVN commit r2330.
2005-05-21 01:40:32 +00:00
0331883a86 Temporary fix for mouse input. Improved performance in player-colour model renderer. Also improved performance in lighting, at least in unoptimised builds.
This was SVN commit r2328.
2005-05-20 17:09:47 +00:00
d0f7cb015c - Linux/GCC (as usual :P)
- Ported lockless code to gcc inline assembly
- A few new net messages (gather, attack, add waypoint)
- Support for new messages in network->entity order converter
- Implemented rudimentary JS interface for Interaction
- issueCommand JS API, connected to the network
- Removed Interaction stuff now replaced by JS
- And something in there should probably break VS builds :P

This was SVN commit r2316.
2005-05-18 05:32:09 +00:00
7054957514 Minimap: Corrected orientation. Also cleaned up a bit, and fixed some inefficiencies.
Camera: Corrected code that wasn't doing what it looked like it was
doing, and was crashing JS "new Camera".

This was SVN commit r2302.
2005-05-13 01:15:53 +00:00
fd4eb91e93 debug_out -> debug_printf; MICROLOG moved to ps/Pyrogenesis.h
This was SVN commit r2285.
2005-05-11 18:56:30 +00:00
ab980c1a31 Updated map format, to store lighting information in XML. Also, vital whitespace consistency improvements.
This was SVN commit r2276.
2005-05-11 03:07:08 +00:00
MarkT
86dc351205 Projectile code and updates to some actors that can use it (celt_ijv and hele_iar)
This was SVN commit r2266.
2005-05-10 07:13:25 +00:00
bcc4aea8dc Maybe fixed nasty memory corruption bug.
This was SVN commit r2254.
2005-05-09 02:29:33 +00:00
0a5461db73 Recompiled ScEd.
This was SVN commit r2252.
2005-05-07 00:17:05 +00:00
410c73cb46 made UnpackMap interruptible (since it takes up to 1900 ms).
root cause is slow automatic mipmap gen; philip is working on DDS mipmap
loader that allows them to be baked in.

This was SVN commit r2243.
2005-05-04 23:12:46 +00:00
462321f425 More efficient actor-loading. Less fatal response to errors.
This was SVN commit r2239.
2005-05-04 21:12:57 +00:00
e2791463a1 heavily revised.
ReadXML is now a closure that interrupts itself periodically (so
progress is updated). also split that monster into several sub-functions
and gave better variable names

This was SVN commit r2235.
2005-05-03 21:42:09 +00:00
f0e311440e all functions called via delay-load mechanism now return int (allows closures that can interrupt themselves when time is up)
This was SVN commit r2231.
2005-05-03 21:36:57 +00:00
MarkT
f50b7c6776 Props no longer play walk anims when their parent is idle.
This was SVN commit r2219.
2005-05-03 04:48:12 +00:00
MarkT
c8cd52578a Put the extra animation event in the struct def, also adding Jan's VFS script wrapper.
This was SVN commit r2218.
2005-05-03 04:27:07 +00:00
MarkT
db168702df Jason's animation events. Also reworked entity-types system.
This was SVN commit r2209.
2005-05-01 19:09:13 +00:00
780b6e266b Changed actor colour syntax. Made the Actor Editor edit colours.
This was SVN commit r2189.
2005-04-28 20:44:22 +00:00
MarkT
bcabe3aa53 Script integration work - valueOf() is no longer required most of the time; also property-change watches and enumeration over entities (but not yet other native objects), rudimentary beginnings of a global events system, and adjusted the status orb to update only on changes.
This was SVN commit r2157.
2005-04-22 07:12:55 +00:00
MarkT
2120576bc7 Gathering and unit training (engine-side); also other minor improvements
This was SVN commit r2132.
2005-04-15 04:23:33 +00:00
d2948937a0 Fixed prop player-colouring. Allowed per-object colours. (Coming soon: data to demonstrate it.)
This was SVN commit r2113.
2005-04-07 04:29:07 +00:00
6a0b5fa0ab ScEd: Added unit deletion. Made zoom less frustrating. Let >2 players work.
Fixed random actor props.

This was SVN commit r2109.
2005-04-03 05:02:00 +00:00
MarkT
bb7a22f32a First draft of a GPG3-style profiler (including tracing into scripts, after a fashion)
This was SVN commit r2090.
2005-03-30 16:14:19 +00:00
8b12c84df7 ScEd: allowed creation of non-entity objects, pending total entitisation
This was SVN commit r2085.
2005-03-30 05:43:22 +00:00
22dd4dd67b Entities: Removed Tag attribute; it is taken from the filename instead. Made entity XML files be loaded on demand. Probably stopped crash when maps contain non-existent entities. Fixed a few bugs in entity definitions.
Maps: Stored non-entity objects in XML instead of PMP, for easier manual
editing. Updated existing maps to newest format, so that they can still
work. Added undocumented _rewriteMaps() JS function. Also renamed _mem
to vmem, and reclassified its undocumentedness as unintentional, since
it's reasonably useful.
Loader: added NonprogressiveLoad function, for ScEd/_rewriteMaps/etc
which don't care about progressiveness.
main.cpp: re-enabled vfs_display, since it doesn't crash now
Vector3D: stopped warning

This was SVN commit r2078.
2005-03-29 20:50:04 +00:00
MarkT
3c99f0f2eb Minor JavaScript updates
This was SVN commit r2073.
2005-03-28 22:13:47 +00:00
2073733761 Fixed support for extra-new actor format. Updated binaries.
This was SVN commit r2050.
2005-03-26 00:22:42 +00:00
c11465cfbf Updated actor references to use filenames instead of names, to allow more efficient loading. Added backward-compatible file support to the Actor Editor.
This was SVN commit r2049.
2005-03-25 23:04:36 +00:00
020645d583 Hacked up ScEd a bit, to disable its actor editor and to let users place entities (rather than actors) on the map.
This was SVN commit r2039.
2005-03-22 23:31:30 +00:00
f19d8dafee improved update frequency and accuracy of progress bar (by splitting up more init functions).
also add thunk mechanism to ease binding to member functions;
finally, added instrumentation to measure how long functions really take

This was SVN commit r2038.
2005-03-22 21:00:56 +00:00
5460b8982e Various small fixes and minimal improvements
This was SVN commit r2035.
2005-03-22 13:54:37 +00:00
6d792365aa rough but functional loading progress bar support.
numerous TODOs remaining - initial update instead of only after
completing first job; fix GUI overdraw issue; decrease granularity
(currently only 3 updates)

This was SVN commit r2033.
2005-03-22 02:17:55 +00:00
afcf7453a3 Random actors, now with fewer missing files
This was SVN commit r2022.
2005-03-19 19:10:52 +00:00
9e8d3d6518 Mostly complete support for random actors
This was SVN commit r2021.
2005-03-22 17:09:36 +00:00
79da4bf050 On-demand loading of actors (sort of)
This was SVN commit r2017.
2005-03-19 11:55:27 +00:00
475dfb2c78 Partial support for new actor format. Partialer support for missing actors without crashing.
This was SVN commit r2014.
2005-03-18 22:30:23 +00:00
308535d58d add instrumentation to see what's slow when starting a session
renderer: also move list of alpha maps here from InitResources

This was SVN commit r2007.
2005-03-18 22:02:20 +00:00
e6c8cef293 types.h => lib/types.h (avoid name collision)
This was SVN commit r1935.
2005-02-26 15:13:15 +00:00
03a6b6e804 Stopped ScEd crashing when loading maps. Avoided crashes from invalid animations. Moved game-specific code out of XMLWriter.
This was SVN commit r1920.
2005-02-11 12:57:19 +00:00
3b1395d80b Optimised game-loading, by not reading terrain textures or calculating bounding boxes when not necessary; maps load about twenty seconds faster (at least in Debug mode). Also fixed possible minor bug (FLT_MIN vs -FLT_MAX) and other trivial things.
This was SVN commit r1917.
2005-02-09 23:19:48 +00:00
880634b598 Small changes to ScEd, to remove some hacky bits and to make it not crash with player-colours
This was SVN commit r1899.
2005-02-04 23:16:42 +00:00
NoMonkey
704907db97 Player colors now recognize gaia as player 0 and allow for 8 regular player colors.
This was SVN commit r1865.
2005-01-29 18:20:16 +00:00
NoMonkey
d7b3d6b0c7 Added a new material, "player_trans.xml" which will give a model player color. So now if you want a player to be colored, just add this material!
This was SVN commit r1830.
2005-01-27 02:52:26 +00:00
NoMonkey
19fd48b1d5 This was SVN commit r1790. 2005-01-23 21:56:47 +00:00
NoMonkey
2af3b77d7e This was SVN commit r1789. 2005-01-23 21:56:00 +00:00
d29833e4ed mouse_x/y => g_mouse_x/y
This was SVN commit r1767.
2005-01-23 17:35:36 +00:00
NoMonkey
0df00e5b16 This was SVN commit r1761. 2005-01-23 08:28:56 +00:00
NoMonkey
d9f1a06b34 This was SVN commit r1760. 2005-01-23 08:22:52 +00:00
NoMonkey
674433a51a This was SVN commit r1759. 2005-01-23 07:54:17 +00:00
a410c2852c Updated ScEd's handling of players (though in a rather nasty way, since it doesn't actually have a CGame, and so it has no CPlayers, and so there are loads of HACK comments everywhere)
This was SVN commit r1740.
2005-01-18 12:45:56 +00:00
MarkT
25fdbfd931 Fixes for two pathfinding bugs (neither of which were actually pathfinding bugs), added player objects (details in TM)
This was SVN commit r1733.
2005-01-18 00:46:18 +00:00
2077698156 New JavaScript interface for the network client, plus some linux/gcc/misc fixes
This was SVN commit r1730.
2005-01-17 04:52:02 +00:00
1c044ac229 Primitive entity player-selection in ScEd
This was SVN commit r1727.
2005-01-16 23:09:41 +00:00
38b30e5eb4 Corrected ICC errors and some warnings. Removed some unnecessarily verbose logging. Did minor things.
This was SVN commit r1718.
2005-01-13 00:17:31 +00:00
4720a00f98 Made ScEd output entities into an XML file.
Added CStrW::utf8() (used by XMLWriter).

This was SVN commit r1716.
2005-01-12 14:31:47 +00:00
fc4a34d768 Nicer XML-writing system
This was SVN commit r1711.
2005-01-11 20:15:39 +00:00
15fcf8f054 Neatened some debug messages. Changed main.cpp so ScEd can use it. Fixed minor inconsistencies and warnings.
This was SVN commit r1708.
2005-01-11 16:58:16 +00:00
f7e82dbc16 add ps/Errors.h and/or lib/types.h headers (shouldn't rely on precompiled.h to pull those in).
also prepended ps/ to make location clear.

This was SVN commit r1652.
2005-01-07 00:47:44 +00:00
618c6cbbe7 Avoid flickering when zooming at near-zero speeds
This was SVN commit r1639.
2005-01-04 22:16:03 +00:00
855e1a7f81 Small ScEd updates
This was SVN commit r1601.
2004-12-30 23:01:09 +00:00
05c4ec0365 Alterations to ScEd, so that it almost works (except for saving/loading maps). Change the bottom of premake.lua if you want to build it.
This was SVN commit r1580.
2004-12-27 23:27:26 +00:00
46f5c61179 Linux/GCC/glibc Compat
This was SVN commit r1532.
2004-12-18 23:30:28 +00:00
465ceff912 More leak fixes
This was SVN commit r1514.
2004-12-16 12:41:54 +00:00
b534e640ca Resource leak fixes
This was SVN commit r1513.
2004-12-16 12:01:47 +00:00
11f3b3c575 CFilePacker now takes version+magic string in the ctor (allows writing data in one go, so vfs_store can be used).
This was SVN commit r1505.
2004-12-15 14:26:21 +00:00
6d7d049d89 Attempted to minimise dependencies between header files (to make compilation minorly faster)
This was SVN commit r1490.
2004-12-12 19:43:55 +00:00
aa1442e8f8 Fix for mesh manager crashes (plus some parts of Boost, which may be a little excessive)
This was SVN commit r1488.
2004-12-12 18:40:00 +00:00
77196dbe06 less dependencies on res/res.h in headers (a bad thing) => less recompiles when I change vfs.h :)
This was SVN commit r1467.
2004-12-07 02:04:38 +00:00
a2a6f29ab3 s/Prometheus/Pyrogenesis/
This was SVN commit r1459.
2004-12-05 21:56:09 +00:00
ffb5f87857 Corrected mesh manager's use of hashmap. Added CStrW support to JS/GUI interface. Added error checking to CStr::Left/Right to make bugs more obvious.
This was SVN commit r1456.
2004-12-05 18:26:43 +00:00
4d83cba7e6 add required precompiled header include
This was SVN commit r1431.
2004-12-01 06:52:39 +00:00
30ad195c0b Linux/GCC Compat
This was SVN commit r1393.
2004-11-23 23:56:10 +00:00
7a84eca26b "*.<ext>" filter as per new vfs_next_dirent; also use ARRAY_SIZE
This was SVN commit r1391.
2004-11-23 23:52:39 +00:00
5a09dcd81b "*.xml" filter as per new vfs_next_dirent
This was SVN commit r1390.
2004-11-23 23:52:13 +00:00
MarkT
793794649f Combat code, some scripting, broken network, and fixed some bugs.
This was SVN commit r1301.
2004-11-11 07:09:32 +00:00
Calefaction
f257c67967 Updated to fix compile errors caued by missing CVertexProgram
This was SVN commit r1299.
2004-11-08 22:15:06 +00:00
Calefaction
82108a30c9 Removed, no longer needed (replacement using GLSL coming)
This was SVN commit r1296.
2004-11-08 22:09:28 +00:00
Calefaction
e3137cd302 Various updates, including the new MeshManager
This was SVN commit r1295.
2004-11-08 22:02:01 +00:00
3136791492 Linux/GCC Compat(tm)
This was SVN commit r1284.
2004-11-07 21:30:47 +00:00
Calefaction
955ddcf9a1 More programmable pipeline updates
This was SVN commit r1280.
2004-10-30 21:57:46 +00:00
728e6e1f10 Update to fix likely GCC compile problem
This was SVN commit r1277.
2004-10-24 15:49:52 +00:00
Calefaction
09ce67303e Updates to fix VC2K5 compile problem
This was SVN commit r1276.
2004-10-24 00:48:54 +00:00
Calefaction
7947293015 Initial programmable pipeline push
This was SVN commit r1272.
2004-10-23 18:13:54 +00:00
MarkT
2ab625720b Fairly major XML/entprop changes; some more minor stuff that fell out as a consequence.
This was SVN commit r1220.
2004-10-07 19:23:35 +00:00
notpete
e260a5eb8e Support for recursive actor directories; few other minor changes.
This was SVN commit r1219.
2004-10-06 18:46:33 +00:00
notpete
17a4174505 Minor additional functionality.
This was SVN commit r1218.
2004-10-06 18:45:59 +00:00
cb11ff27c2 startServer() display corruption bug, bug #28
This was SVN commit r1202.
2004-09-28 16:01:11 +00:00
011666f393 Minor fixes for Linux/GCC
This was SVN commit r1201.
2004-09-26 21:21:34 +00:00
Calefaction
39501530d4 Updated to properly update material parameters.
This was SVN commit r1200.
2004-09-26 04:09:57 +00:00
Calefaction
b1c269b72e Complete materials checkin
This was SVN commit r1197.
2004-09-24 03:52:03 +00:00
7f962ea9c4 Fixed very minor bug
This was SVN commit r1196.
2004-09-23 13:23:42 +00:00
Calefaction
831053d680 Update to the material system
This was SVN commit r1193.
2004-09-23 05:10:03 +00:00
Calefaction
4fff66cfce Initial import of material code. MaterialReader is implemented and functional. Currently models do not attempt to load materials, nor does the renderer use them.
This was SVN commit r1192.
2004-09-23 04:00:56 +00:00
4a7757dac6 VC2k5 fix: avoided ambiguous parameter naming
This was SVN commit r1185.
2004-09-21 22:11:33 +00:00