1
0
forked from 0ad/0ad
Commit Graph

3123 Commits

Author SHA1 Message Date
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
14ec3a3026 minor fixes:
whrt: output timer implementation info, fix assert ( 1/(x-epsilon) < 1/x
+ epsilon )
wsdl: fix slightly incorrect gamma values (first and last are now
exactly 0 and 1)

This was SVN commit r6321.
2008-08-10 11:02:25 +00:00
a3b7e8c08c needed unicode at work:
debug: reinstate wchar_t version of debug_printf
  file, waio: add hack to allow creating File_Posix with unicode path
wposix: no longer include some rarely-used stuff to avoid conflict with
3rd party libraries
precompiled: bring boost::bind into global namespace (present in TR1)

dir_watch: needed directory watching with unicode paths and larger
buffers at work, so I completely overhauled and documented this

timer: add ToSeconds

SocketBase: fix to ensure correct match despite ::bind's conflict with
boost::bind

This was SVN commit r6319.
2008-08-09 19:22:13 +00:00
5d35f6bfe0 Increase turn length to 300ms to work better with lag.
This was SVN commit r6318.
2008-08-08 05:57:10 +00:00
98dd1a1bb4 Refactored "generic" order to just call it "contact action", and added support for intercepting targets if performing a contact action while moving.
This was SVN commit r6290.
2008-07-29 08:22:56 +00:00
0e8b7c5bc7 Removed some long commented out code.. no point keeping it there since it's in SVN.
This was SVN commit r6289.
2008-07-29 07:01:23 +00:00
435ac684e3 Fixed an bug where double-clicking on the minimap, or dragging the view and them leaving the minimap window, did not clear the "clicking" flag and caused further mouse motion to move the view around.
This was SVN commit r6288.
2008-07-29 06:56:38 +00:00
d0c6805725 Fixed bug that was causing population to go negative. It was due to a unit being killed by multiple enemies in the same frame, which led to multiple calls of the death event handler. The fix is twofold: First, kill() only calls the event handler the first time the unit is killed. Second, damage() (in JS), which apart from killing things also loots them, makes sure that the unit is not already being destroyed. This latter fix is to ensure that we don't get a huge amount of loot by simply attacking a low-HP unit with many soldiers simultaneously, so they kill it in the same frame.
This was SVN commit r6276.
2008-07-24 05:50:45 +00:00
75a9b2f357 Made stance-setting work with multiplayer.
This was SVN commit r6274.
2008-07-24 05:25:14 +00:00
fa7ce687f0 fix error handling - ensure SoundGroup doesn't crash when sound loading fails (previously it was only handling the case where loading failed due to sound being disabled)
This was SVN commit r6269.
2008-07-23 05:39:54 +00:00
aebe9a7936 Added active field to players to check whether the player is a human or CPU.
This was SVN commit r6267.
2008-07-23 05:21:57 +00:00
9f909073b4 fixes from work
- file: prevent error when closing a file twice (e.g. close and dtor)
- file_system_posix: export from DLL
- path_util: add some unicode versions of functions
- ia32: robustify, prevent hook reentry due to failure in disassembly,
gracefully handle breakpoints that overwrite code
- wdbg_heap: fix wdbg_heap_Validate

This was SVN commit r6264.
2008-07-21 20:43:37 +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
e063542a5f fix memory leak in leak detection code :P
This was SVN commit r6257.
2008-07-19 18:35:33 +00:00
6eb29f76d3 Already existed as a property.
This was SVN commit r6256.
2008-07-19 02:43:35 +00:00
a3fb9051b6 Fix MSVC build errors and warnings
This was SVN commit r6254.
2008-07-19 00:58:34 +00:00
8f6d3a75a5 (Missed from previous commit)
This was SVN commit r6253.
2008-07-19 00:40:08 +00:00
0f9294ce17 Fixed some strict aliasing warnings
This was SVN commit r6252.
2008-07-19 00:36:42 +00:00
fbc3d22720 Use GCC's std::tr1::unordered_* classes instead of the now-deprecated __gnu_cxx::hash_* when possible
This was SVN commit r6250.
2008-07-19 00:20:54 +00:00
0b32d1b674 Fix warning about static_assert being a future (TR1) keyword
This was SVN commit r6249.
2008-07-19 00:13:53 +00:00
afae8e6c7d Adding the getName() method to be used from JS scripts.
This was SVN commit r6248.
2008-07-18 23:55:13 +00:00
5fcd1601a1 Fixed multi-line comment warning
This was SVN commit r6247.
2008-07-18 23:52:29 +00:00
6d92213077 Fixed "it=it=map.begin()" typo
This was SVN commit r6246.
2008-07-18 23:51:44 +00:00
4e539a652f Fixed one set of annoying DCDT warnings
This was SVN commit r6245.
2008-07-18 23:49:51 +00:00
8f46070b2e Reverting a change from #6239 because of the compilation error.
This was SVN commit r6244.
2008-07-18 23:00:04 +00:00
fe6370aff8 more dehydra. disabled lockfree module (not in use).
This was SVN commit r6240.
2008-07-17 17:00:00 +00:00
8e86d29301 dehydra fixes (mostly copy-ctor warnings)
This was SVN commit r6239.
2008-07-17 14:23:51 +00:00
0cbb38bfd9 Fixed 3+ player games. The problem was the FinalizeSlots method in GameAttributes, which confused player and slot IDs by deleting nonexistent slots/players from the array. Since this doesn't seem particularly useful (and is even undesirable for scenarios where some players *want* to be the last slot and to leave others empty), I commented it out rather than having the code incur the extra complexity of supporting renumberings.
This was SVN commit r6228.
2008-07-14 06:40:05 +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
9025056ffd Made rally point setting net-safe.
This was SVN commit r6225.
2008-07-13 17:37:45 +00:00
36b18f646f Added shouldRun parameter to order(ORDER_GENERIC) calls from scripts.
This was SVN commit r6224.
2008-07-13 16:31:03 +00:00
e4966f6f1b Added running support to GENERIC orders through a field that can be sent across the network (previous implementation used to be by setting properties on the entity itself).
This was SVN commit r6223.
2008-07-13 06:24:50 +00:00
d5fedc7c76 Fixing some multiplayer issues:
a) Run commands were not being sent accross properly because the JS just
directly set flags on the entity. Note: The current fix has the
side-effect of making it no longer possible to double-rightclick a
target to charge, run-gather, etc. That will be fixed in a later commit.
b) EntityLists were serialized in a format that made it impossible to
deserialize a zero-length list.

This was SVN commit r6221.
2008-07-13 05:56:27 +00:00
7af5e039a7 Adding IsGameRunning() function
This was SVN commit r6218.
2008-07-12 21:27:38 +00:00
f6ac13c15a Networking fixes - it now more or less works over ENet!
This was SVN commit r6216.
2008-07-12 19:08:38 +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
875260f60a Minor fixes for OSX: stub for debug_set_thread_name, changed name for os_cpu_CallByEachCPU and changed header path for os-sysdeps
This was SVN commit r6207.
2008-07-06 19:52:55 +00:00
3be2bfa7ac OSX implementation of rtl_AllocateAligned
This was SVN commit r6206.
2008-07-06 19:49:27 +00:00
1de82c5efe add cppdoc (and fix a warning in ogl_shader)
This was SVN commit r6204.
2008-07-05 18:46:12 +00:00
ab7cd7a5fa avoid two warnings:
- recompiled enet without /GL and /LTCG because the game's release mode
doesn't include those, either (due to their heavy compile-time impact)
- wdbg_heap: wrap all allocation-hook logic in #ifndef NDEBUG to avoid
unreferenced local function warnings

This was SVN commit r6201.
2008-07-05 09:41:23 +00:00
e14d5be529 timing-related fix (only occurs with certain timer resolutions due to incorrect arithmetic)
frequency_filter wasn't dealing correctly with resolution = 0
.. which was happening due to incorrect cpu_i64FromDouble macros

This was SVN commit r6200.
2008-07-05 08:27:33 +00:00
ea75498bab This was SVN commit r6199. 2008-07-05 01:14:23 +00:00
aaccb15c0a another 64-bit fix, we're now getting there :D
(the change is inside #if !GCC_VERSION so it can't break GCC)

adding specializations for (un)signed long sounds good, it's just that
x64 MSC still treats size_t as distinct but not ssize_t. removing the
latter makes it build on win32 and win64.

This was SVN commit r6198.
2008-07-04 19:25:52 +00:00
11b308c347 fix detection of amd64 on VC and avoid 64-bit warning
This was SVN commit r6197.
2008-07-04 19:10:09 +00:00
5b757e536f fix: avoid reentering allocation hook if an error is raised within memory allocators
This was SVN commit r6196.
2008-07-04 18:02:54 +00:00
b46f8b9ed8 This was SVN commit r6195. 2008-07-04 16:03:20 +00:00
0ee1c9d2c4 This was SVN commit r6194. 2008-07-04 16:02:58 +00:00
6bf3e238e5 GCC fixes
This was SVN commit r6193.
2008-07-04 11:17:24 +00:00
984f3d2180 GCC fixes
This was SVN commit r6192.
2008-07-04 11:16:30 +00:00
b9c939402b GCC fixes
This was SVN commit r6191.
2008-07-04 11:15:47 +00:00
2be5d5b752 More GCC/64-bit fixes
This was SVN commit r6190.
2008-07-04 11:10:18 +00:00
4a73261ba1 fix - FMVector3::XAxis wasn't defined
This was SVN commit r6189.
2008-07-03 20:28:22 +00:00
2109f4eb0e Merged in Dacian's network changes.
This was SVN commit r6187.
2008-07-03 06:29:22 +00:00
0d82179d64 add header and include guard
This was SVN commit r6173.
2008-07-02 06:21:06 +00:00
5fe79fbb7c adding needed include
This was SVN commit r6169.
2008-07-01 22:12:03 +00:00
49f0feb969 Fixed Linux build more
This was SVN commit r6168.
2008-07-01 21:43:08 +00:00
e3d60ad0b2 fix inadvertent dependency on sse2
This was SVN commit r6167.
2008-07-01 20:27:37 +00:00
58c3b031d6 Partly fixed Linux build
This was SVN commit r6166.
2008-07-01 20:18:05 +00:00
1c610fd8b0 A bunch of constness changes in dcdt to get rid of a few compiler warnings
This was SVN commit r6165.
2008-07-01 16:05:05 +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
10a6ef4e17 fix a few remnants of the previous sysdep/win folder location, including a relative path in icon.rc
This was SVN commit r6163.
2008-06-30 18:19:14 +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
8bb535de75 GL functions have stdcall convention on windows, so that needs to be included in the cast
note that windows build is currently broken - comment out
const size_t CUnit::invalidId;
in Unit.cpp (seems to be a dark corner of the C++ standard, am currently
discussing this with simon)

This was SVN commit r6158.
2008-06-29 21:32:52 +00:00
697ef257d5 ssize_t specialization issue is hopefully now fixed in a manner palatable for both MSC and GCC :)
This was SVN commit r6157.
2008-06-29 21:24:46 +00:00
2382899a87 add system-specific AllocateAligned call (because _mm_malloc isnt as portable as hoped)
("RTL" directly has been added to sysdep - requires update of workspace)

This was SVN commit r6156.
2008-06-29 10:30:33 +00:00
84f5428b9f Mismatching typedef int ObjectID. All the other places use size_t, so I changed this one to size_t too.
This was SVN commit r6155.
2008-06-29 10:15:13 +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
d513f3a579 Fixed logging of boost::basic_path and a type-punned pointer
This was SVN commit r6152.
2008-06-29 09:59:26 +00:00
7d18028fe2 Un-type-pun importExtensionFunctions
This was SVN commit r6151.
2008-06-29 09:54:26 +00:00
91873a66a2 Const-correctness (less compile warnings)
This was SVN commit r6148.
2008-06-28 21:49:14 +00:00
d790210c11 Fixes for ENet compilation
This was SVN commit r6146.
2008-06-28 20:19:13 +00:00
a68d99144b Compile fix for newer versions of GCC (>= 4.3)
This was SVN commit r6144.
2008-06-28 18:51:06 +00:00
67eefaf733 size_t fixes
This was SVN commit r6143.
2008-06-28 18:50:32 +00:00
f2129f70a5 AMD64 assembly modifications for linux
This was SVN commit r6142.
2008-06-28 18:44:06 +00:00
e62deac770 get rid of some instances of type punning (dangerous in the face of aliasing optimizations)
This was SVN commit r6140.
2008-06-28 17:51:18 +00:00
f2037e3dca uint/size_t fixes
This was SVN commit r6139.
2008-06-28 17:31:14 +00:00
26737d624e Indicate load_sys_cursor failed if compiling without system cursor support
This was SVN commit r6138.
2008-06-28 17:28:06 +00:00
9f44f08611 UINT_MAX -> ULONG_MAX to avoid truncating negative 64-bit values into positive 32-bit ones
This was SVN commit r6136.
2008-06-28 17:19:57 +00:00
7d9a366d40 Fixed annoying "unmatched '" warning on gcc
This was SVN commit r6135.
2008-06-28 17:18:33 +00:00
82eb8d355f GCC fix (*(u32*)&float_var confuses gcc)
This was SVN commit r6133.
2008-06-28 17:10:25 +00:00
4d61367fd7 don't crash if SoundMgr is given an invalid index (happens if entities dont define a soundGroup - we need to find a way to prevent the underlying cause.
fixes #203, see also
http://www.wildfiregames.com/forum/index.php?showtopic=11703

This was SVN commit r6132.
2008-06-28 10:27:04 +00:00
504ec69508 Fixed some integer type conversion warnings.
This was SVN commit r6130.
2008-06-28 01:09:45 +00:00
ee969c4627 Changed link in error dialog from bugs.wildfiregames.com to trac.wildfiregames.com
This was SVN commit r6125.
2008-06-27 21:32:38 +00:00
ad15764e1b committing patch from simon (compiles clean on win32, pathfinding still works)
see http://www.wildfiregames.com/forum/index.php?showtopic=11817&hl=#

This was SVN commit r6120.
2008-06-26 20:20:17 +00:00
0994b71316 fixes
bits: avoid warning, document ceil_log2 corner case
cpu, x86_x64: remove unused cpu_MemoryFence
wdbg_heap: avoid warning
test_bits: fix incorrect test values
TerrainOverlay: fix use of struct vs. class, correct unintended
search&destroy of intended->ssize_tended (LOL)

This was SVN commit r6119.
2008-06-26 20:12:42 +00:00
010cbdd283 More uint/size_t fixes
This was SVN commit r6116.
2008-06-26 07:48:42 +00:00
f41bd37c81 Only use #pragma warning on MSVC
This was SVN commit r6115.
2008-06-26 07:43:22 +00:00
6e893a2050 Some uint/size_t compile fixes
This was SVN commit r6114.
2008-06-26 07:25:50 +00:00
10237a66c7 GCC/Linux build fixes
This was SVN commit r6107.
2008-06-25 23:01:13 +00:00
129f923cf5 fix: GCC requires emmintrin.h for _mm_mfence
This was SVN commit r6106.
2008-06-25 20:37:25 +00:00
8529e2b14f dacian's network files were not yet completely in SVN. added the remaining files, removed obsolete ones
This was SVN commit r6105.
2008-06-25 20:34:23 +00:00
b5987f11e8 Cleaned up TerrainOverlay a little
This was SVN commit r6104.
2008-06-24 23:35:46 +00:00
557f08db27 Fix some GCC build issues
This was SVN commit r6103.
2008-06-24 23:28:22 +00:00
e943dbf44b fixes
wsdl: check handles before using, prevent bogus error message due to
stupid MapWindowPoints return value
cursor: robustify, add CppDoc

This was SVN commit r6096.
2008-06-22 11:11:59 +00:00
b478fde5a1 add support for positional sound and "omnipresent" interface sounds
snd_mgr: remove support for sound cones (will not be used); only set
VSrc rolloff factor if relative flag is set
main: hack: flip listener up vector to 'fix' L/R flip (cause is unknown,
coord systems appear to be correct)

This was SVN commit r6092.
2008-06-21 20:06:30 +00:00
a74ffe9a76 wsdl bugfixes:
- robustify gamma ramp calculation, hopefully avoid "invalid parameter"
error message
- fix two mixups of client vs. screen coordinates that caused button
presses to be ignored after moving the window

This was SVN commit r6090.
2008-06-21 18:24:07 +00:00
e364a26a3f fixes:
- Xeromyces filename had been changed to VfsPath but was still being
passed to LOG() without .string().c_str()
- CPUID.4 is "reserved" on AMD, they require a separate codepath for
determining cache parameters.

This was SVN commit r6040.
2008-06-17 18:27:19 +00:00
cf2f61e19a fix Zip archive creation code (note: just the low-level archive code; "vfs_optimizer" is still inoperational)
archive_zip: truncate requires full path; 7-zip apparently relies on
ECDR.m_cd_numEntriesOnDisk
codec: re-enable checksum generation (both explorer and 7-z demand that
CRC be computed)
codec, codec_zlib, stream: wasn't counting the number of output bytes
generated during Finish()

This was SVN commit r6034.
2008-06-16 20:33:47 +00:00
028a92375f fixes from work:
- aligned_allocator.h: use _mm_malloc instead of _aligned_malloc
(somewhat more portable)
bits: fix incorrect handling of bit_mask(0)
- archive_zip.cpp: fix ArchiveWriter_Zip (wasn't opening its output
file, ECDR record wasn't at end of file due to padding)
- io_align.cpp: move routines to header (DLL export)
- wdbg_heap.cpp: avoid crash in report hook if CRT memory block is
invalid

This was SVN commit r6030.
2008-06-16 18:36:36 +00:00
2b4f3416a8 SimulationScriptInit.cpp: add missing headers
SoundGroup.cpp: fix: avoid invalid-handle complaints if quickstart has
disabled sound

This was SVN commit r6029.
2008-06-16 18:33:47 +00:00
b0a6d6dca8 committing the current status of dacian's new network code on matei's request
also includes sound support.

GameSetup: ensure all ScriptingInit are called; moved simulation
ScriptingInits and init/shutdown to SimulationScriptInit.cpp (reduces
#includes)

This was SVN commit r6028.
2008-06-16 18:19:35 +00:00
6324deb7d0 fix to prevent further issues due to invalid XMB files (c.f. matt's "crash upon combat" bug report, http://www.wildfiregames.com/forum/index.php?showtopic=11703). as per philip's excellent suggestion, they are now only tagged with a header iff the file contents are valid.
details:
- add a new magic string "XMBu" to indicate an unfinished XMB file;
- header magic fields are now exclusively strings to avoid type punning;
- XMBFile::Initialize now has a return value which is checked by
ReadXMBFile;
- the XML loader re-creates the XMB if that fails.

This was SVN commit r6016.
2008-06-15 17:24:32 +00:00
34fec9cb85 preemptive fix: prevent CRT error messages generated after PostQuitMessage from vanishing
This was SVN commit r6005.
2008-06-01 10:19:17 +00:00
5d80d2ee5d fixes+improvements from work:
- add AlignedAllocator - an STL allocator that returns
cache-line-aligned objects (required to avoid RFOs when threads write to
various independent items in a container)
- bits: bit_mask can now be used for N=0..numBits (works around
full-word-shifts-are-undefined issue)
- precompiled.h: remove scoped_ptr, add function-related stuff from TR1
- numa:
  . add numa_IsMemoryInterleaved
  . numa_Allocate is now able to allocate large pages as well (reduces
TLB misses)
- os_cpu: interface change to support 32-bit apps running on WoW64
systems with > 4 GB of memory
- topology: use new x86_x64_EnumerateCaches API; fix detection of cache
ID
- x86_x64: provide the means of enumerating all caches returned by CPUID
and detect L1 cache size

This was SVN commit r6004.
2008-06-01 08:25:12 +00:00
9f3c3df49c fixed logic error in VFS choose-loose-or-archive-file decision (was causing the archive file to be used regardless of whether the loose one was newer or not)
This was SVN commit r5994.
2008-05-31 18:50:39 +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
d1a9348b91 major refactor of topology.cpp: each piece of information is detected separately on-demand (reduces coupling and static data)
fix documentation of ceil_log2 relating to input=0
remove os_cpu_SetThreadAffinity (redundant)
wcpu: make max # processors available via os_cpu.h; remove warning if
process affinity is restricted

This was SVN commit r5951.
2008-05-13 05:51:25 +00:00
b429c492ff (hopefully correctly) port the new os_cpu functions to Linux and OSX
the OSX port lacks thread affinity (too complex, can't test), but a link
to the API documentation is included.

This was SVN commit r5946.
2008-05-12 18:38:48 +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
cc243f67eb fixes/improvements made at work:
- fix lots of 64-bit warnings
- round_up/down now templates
- avoid warning with definition of byte swap functions; remove
duplication of that in wsdl
- codec_zlib.cpp: avoid domination warning
- vfs/file_cache: VFS is now responsible for handling zero-length files
(no longer considered an error; just returns zero pointer and size=0)
- cpu: export all functions (thus obviating cpu_memcpy_thunk). this
required renaming asm functions and adding thunk functions that call
them
- winit: fix segment merge statement, reinstate /include (otherwise init
functions are stripped by linker)
- wstartup: VC CRT init section definitions have changed in amd64 build;
match their definition
- wsysdep.cpp: more descriptive text for osError = 0

This was SVN commit r5899.
2008-05-01 15:41:42 +00:00
a915bdc1b6 fix problems related to 64-bit compilation in lib
. dbghelp is now pulled in by a separate external_libraries header
. disable _SECURE_SCL (improves perf)
. amd64: initial implementation of essential functions, not yet complete
. manifest: disabled on ICC because its IPO module incorrectly
interprets /manifestdependency
. wdbg_sym: no longer support stack walks on non-ia32 win2k (avoids
trouble due to mixing SEH and dtors)
. winit and wstartup: had to remove forced symbol include - does not
link otherwise on ICC (for reasons unknown). function pointers are
actually included and called on x64 windows (compiling with MSC)

This was SVN commit r5895.
2008-04-19 18:10:00 +00:00
de9cfc6592 bucket: all routines exported, add bucket_fast_alloc
This was SVN commit r5894.
2008-04-19 17:35:28 +00:00
e76a15d19d Fixed unused argument warning.
Trying post-commit hook again: fixed #194.

This was SVN commit r5885.
2008-04-15 13:49:08 +00:00
00cdb335c6 Skip standalone document declaration in generated XML, since it's pointless.
Unrelated to this checkin, fixed #194.

This was SVN commit r5884.
2008-04-15 13:45:17 +00:00
7d82d87ce8 [requires workspace rebuild due to added directory]
replace ONCE with direct calls to ScriptingInit in simulation/network
code as well.
note: GameSetup is now responsible for calling ServerSession's init
instead of Server doing it

added simulation/scripting with a module that takes care of all
scripting init (reduces CCD)

This was SVN commit r5883.
2008-04-13 14:50:11 +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
bdc7f3af7c Initialize CNetServerSession and CNetClient::CServerSession at server and client startup rather than when they are first created, to prevent crashes in SpiderMonkey due to intializing during an event handler or in a different thread.
This was SVN commit r5854.
2008-04-05 18:36:39 +00:00
a9fcc1a87c small fixes required by use of lib codebase at work
This was SVN commit r5796.
2008-03-29 18:29:26 +00:00
bc999e00d7 paranoid error checking of pthread mutex functions (safely fails use-after-free requests)
fixes a crash at shutdown after a client has connected

This was SVN commit r5788.
2008-03-25 21:20:43 +00:00
1aa514a6ef fix (i.e. remove) mahaf warnings when running on least-permission account or when running multiple game instances
cpu, timer: fixes for when using lib code from DLL (required for work)

This was SVN commit r5787.
2008-03-24 15:44:37 +00:00
74b4ac19c1 cleanup+fixes; wdbg_heap is now feature complete.
should be safe to distribute this build

code_annotation.h: add our own noncopyable to avoid DLL base class
warning
debug: remove some unicode functions (unnecessary); minor cleanup
debug_stl: disabled
mahaf: do not warn when running as non admin
wdbg: add wdbg_printf and wdbg_assert for use in allocation hook. add
header
wdbg_heap: now feature complete.
. allows storing 3..4 frames from the call stack with 0 space overhead.
. prevents garbage file/line output.
. takes care of allocation counting (previously done by profiler)
wdbg_sym.cpp: cleanup+fixes (locking, wdbg_*)

fix: properly specify __declspec(dllimport) for certain classes

This was SVN commit r5679.
2008-02-25 21:19:52 +00:00
3f23e37fac fix atlas screenshot (code that passes the extension wasn't updated when porting to boost::filesystem; the one inside the game engine was)
This was SVN commit r5672.
2008-02-23 18:30:30 +00:00
bf31dd66b3 increase handle limit to 16k
in 2008-02-09 meeting, decided to stick with a fixed-size array for
simplicity. (changing to vector would require modifying the m_refd
bitset optimization. there is a 32k handle limit due to serialization
code anyway, and no pressing need to justify changing either)

This was SVN commit r5612.
2008-02-09 19:11:01 +00:00
df3198ce1e fix massive inefficiency in write_buffer (allocating new buffer each time)
This was SVN commit r5611.
2008-02-09 18:57:59 +00:00
871c71317c # fix filesystem bugs that prevented screenshots from being written
This was SVN commit r5600.
2008-02-05 07:40: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
455556783e # Fixed walking on a multistep path, which sometimes stopped after the first few steps.
The problem was incorrect logic in the start-next-segment-of-the-path
code that was added to allow multiple segments to be handled within the
same update. I'm not sure how this worked before but it seemed to give
continuous paths! Likely that's because the pathing for contact actions
is different.

Also added more sanity checks in Aura.cpp for deleted entities in the
m_Influenced queue. There was a crash caused by something here though
it's hard to reproduce.

This was SVN commit r5597.
2008-02-04 08:24:17 +00:00
e4f3567d39 # Fixed a file save bug (wrong data size was being written, making the saved file invalid).
This was SVN commit r5595.
2008-02-04 07:30:15 +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
0201229520 Fixed build on Ubuntu.
This was SVN commit r5584.
2008-01-26 04:43:02 +00:00
58360a629c - fix incorrect use of block vs. sector aligned (both offset and length must be block-aligned to allow proper caching)
- use helper functions to reduce occurrences of BLOCK_SIZE and
SECTOR_SIZE
- wmi: provide for shutting it down (gets rid of its two threads); only
initialize if actually needed (costs 200ms)
- ogl_tex: don't complain if there's no gfx_card info (due to not having
used wmi)

This was SVN commit r5572.
2008-01-20 21:52:54 +00:00
aebf8cbf68 fix VFS bug preventing directories from being created:
- vfs_lookup: currentPath was of wrong type; simplified and fix create
logic
- archive_zip: fix: correctly handle filenames with /
- vfs: remove workaround for above bug
- io: temporarily disable block caching (works around problem with zip
file created by 7z)

add and use new wdbg_heap module (WIP)
remove mmgr

This was SVN commit r5571.
2008-01-20 16:53:09 +00:00
1700e90a15 fix VC9 warning*, update some comments, remove old VC6 workarounds
* http://www.wildfiregames.com/forum/index.php?showtopic=11479&hl=

This was SVN commit r5564.
2008-01-19 11:44:41 +00:00
9269be9ee3 remove mmgr and macros that redefine malloc/new/free
(see http://www.wildfiregames.com/forum/index.php?showtopic=11450&hl= )

clean up debug module
. no longer include platform-dependent header (-> less rebuilds)
. DISPLAY_ERROR -> DEBUG_DISPLAY_ERROR
. parts of config.h that don't affect all files moved to config.2 (->
fewer full rebuilds)
. remove creaky symbol cache (no longer needed for mmgr)
. remove TLS thread naming stuff (can use debugger's thread window
instead; no need for platform independence there)

wdbg: remove thread suspension and breakpoint APIs (not needed)

acpi: fix: u64 -> uintptr_t

wutil: fix WinScopedLock, use that instead of direct lock() functions

misc:
. get rid of SAFE_STRCPY, replace with strcpy_s
. remove _getcwd (shouldn't be used)

This was SVN commit r5563.
2008-01-19 11:33:11 +00:00
e9c34cc04c VS2008 compatibility
This was SVN commit r5561.
2008-01-17 23:07:26 +00:00
4df9e47976 wsdl: add WS_ flags mentioned as required by MSDN (even if it worked before)
wsdl: add note on deadlock in ChoosePixelFormat
ScriptGlue.cpp: timer.cpp no longer provides Seconds(), so remove that.

This was SVN commit r5549.
2008-01-14 21:04:55 +00:00
f4da60b0d9 timer: display clocks instead of seconds if using rdtsc (avoids needing cpu_ClockFrequency on linux, which isn't currently implemented; also avoids differing results due to CPU freq throttling)
tex: minor formatting

This was SVN commit r5547.
2008-01-13 11:25:19 +00:00
c85957662a Changed Windows memory-allocation counter to get more predictable performance. Removed slow debug_printf warning about low FPS, to avoid positive feedback.
This was SVN commit r5546.
2008-01-12 21:08:11 +00:00
8e341c2d6b shared_ptr: use Philip's idea of making the Deleter's operator() a template instead of its enclosing class. in code, use DummySharedPtr() instead of passing a DummyDeleter
h_mgr: compile fix for windows memory tracker (see forum thread)
timer: add assert to catch incorrect behaviour as reported by philip

This was SVN commit r5544.
2008-01-10 19:29:52 +00:00
52626dd655 Fixed that CNetLogManager::Shutdown wasn't called. Fixed that CNetLogger::m_Level was used uninitialised.
This was SVN commit r5542.
2008-01-10 01:17:09 +00:00
5d50893c00 Fixed h_mgr crash on Linux
This was SVN commit r5541.
2008-01-10 00:50:05 +00:00
607094333a Added ArrayDeleter for shared_ptr(new[])
This was SVN commit r5540.
2008-01-08 23:38:52 +00:00
6541294ebf More Linux build fixes
This was SVN commit r5539.
2008-01-08 00:09:52 +00:00
e1e9ba150c additional linux fix (hopefully): "add" sscanf_s
This was SVN commit r5538.
2008-01-07 20:07:05 +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
3273a8425c Partial Linux build fixes
This was SVN commit r5536.
2008-01-07 15:32:32 +00:00