Commit graph

1134 commits

Author SHA1 Message Date
Ykkrosh
45426ac21c Probably fix build error
This was SVN commit r9450.
2011-05-05 18:06:36 +00:00
Ykkrosh
a7aed9957d Build fix
This was SVN commit r9448.
2011-05-05 16:24:06 +00:00
janwas
a741fb2f33 fix ChooseCacheSize - more simple, no longer relies on available-memory reporting (because Linux has a weird understanding of "available")
closes #611, refs #832

This was SVN commit r9445.
2011-05-05 09:53:07 +00:00
Ykkrosh
fa16181e84 Fix build error in tests.
Don't call wrealpath on the value returned by GetArg0, since it breaks
the tests and changes the semantics of that function.

This was SVN commit r9427.
2011-05-04 14:40:14 +00:00
Ykkrosh
b560ff5fb7 Fix warning from cccd6849a7
This was SVN commit r9426.
2011-05-04 14:18:16 +00:00
janwas
a7152270f4 Path now goes to some trouble to prevent mixing / and \ slashes (causes trouble when hotloading, and some Windows APIs can't handle it, either)
WARNING: that means stuff like Path(nativeDataPath/"art/") is forbidden
and will raise errors on Windows when nativeDataPath contains \. always
use /"" to add a trailing slash. never embed "/" in OsPath component
strings (it's OK for VFS strings since they consistently use /).

wdir_watch, CmdLineArgs: avoid mixed separators
wutil: remove overzealous assertion (infinite recursion if an error
arose before we create a window)

refs #781

This was SVN commit r9424.
2011-05-04 12:16:51 +00:00
janwas
7523894760 ENSURE(0) -> DEBUG_WARN_ERR(ERR::LOGIC) (a bit smaller, and more descriptive)
This was SVN commit r9423.
2011-05-04 12:10:17 +00:00
janwas
cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
Ykkrosh
333c62a490 Report errors in GL limit detection properly.
Report slightly more detailed RAM and CPU data.

This was SVN commit r9405.
2011-05-02 23:46:56 +00:00
janwas
5ca66fc757 cleanup: move ADTs into lib/adts (separate files). fix definition of ASSERT
This was SVN commit r9364.
2011-04-30 13:35:36 +00:00
janwas
4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00
janwas
6c915291cc cleanup (requires update-workspaces):
major refactor of wfilesystem - remove gotos and workaround for FAT file
times
replace more round_up of constants with Align<>
remove old unused allocators (STL aligned, matrix, some shared_ptr)
move allocator utils into separate headers.
remove lockfree, wterminal
avoid testing __cplusplus

This was SVN commit r9361.
2011-04-30 12:34:28 +00:00
janwas
2374caac3e major refactor of file/io and alignment code. requires update-workspaces
. completely rewrite waio - use IOCP, add several hardcore
optimizations. now outperforms the
  AS SSD and ATTO benchmarks when writing
. refactor file interface - use LIO_READ instead of 'r', allow access to
file descriptor.
. completely rewrite the IO wrapper. now much more simple, less CPU
overhead, adds
  support for pre-issue/post-completion hooks and preallocation.
  io::Run defaults to simple synchronous IO; use io::Parameters to get
asynchronous.
. add alignment.h with constants and Align() function template (more
efficient than
  round_up for compile-time constants)
. add UniqueRange - similar to C++0x unique_ptr (emulated for C++03),
plus a
  built-in size. avoids expensive thread-safe reference counting in
shared_ptr.

cleanup:
- move fat_time functions into archive_zip
- remove no longer needed io_align and block_cache
- reduce dependencies in sysdep/compiler (move parts to
code_annotation.h)
- move IOCP into separate file (reused by waio)

This was SVN commit r9350.
2011-04-29 19:10:34 +00:00
Ykkrosh
2d04d78db8 Disable apparently buggy shader mode on r300c drivers. Fixes #780.
This was SVN commit r9308.
2011-04-23 17:06:27 +00:00
Ykkrosh
7ec3266da5 Fix assertion failures when running RMS in debug mode
This was SVN commit r9282.
2011-04-18 17:10:57 +00:00
historic_bruno
b4503bb61e Simplifies random map output, see #782.
Changes random maps to XZ coordinates, matching the engine.
More documentation for rmgen library.

This was SVN commit r9271.
2011-04-16 04:04:06 +00:00
historic_bruno
942a45372c Random maps generated in their own thread, loading GUI is updated with progress.
Fixes some bugs in game loader error handling.

This was SVN commit r9220.
2011-04-10 05:31:18 +00:00
janwas
99aa427ffa make use of SMBIOS information to detect CPU frequency and memory size
smbios fixes: also ignore max value (used by Dell BIOS to report invalid
MemoryDevice bit width); fix incorrect error check that caused 0 to be
returned on all but the first call; add implicit conversion operator to
allow using size without appending .value

This was SVN commit r9195.
2011-04-07 17:06:00 +00:00
Ykkrosh
e5e9e38532 Fix GCC 4.6 "set but not used" warnings
This was SVN commit r9194.
2011-04-07 16:34:51 +00:00
historic_bruno
2b138f47db Handle map loading errors in autostart and normal setup modes. Adds TODOs for Atlas and Replay modes. See #764.
Fixes loading screen 'title'.
Fixes broken autostart behavior for random maps and multiplayer games.

This was SVN commit r9193.
2011-04-07 02:32:16 +00:00
Ykkrosh
1866c2d3b7 Renderer simplification: Remove non-FBO shadow mode.
This was SVN commit r9189.
2011-04-06 22:08:51 +00:00
historic_bruno
06903af31f Fixes build warning in C/C++ preprocessor (moves initialization outside test expression)
This was SVN commit r9185.
2011-04-06 21:47:42 +00:00
Ykkrosh
823e63a93b # Initial version of new particle system.
This was SVN commit r9151.
2011-04-03 19:15:15 +00:00
Ykkrosh
d295dacb9b # Add new renderer mode based on GL_ARB_fragment_program.
Change lighting model for new maps to allow better overbrightness.
Cache player colours instead of loading from scripts every time the
renderer wants them.

This was SVN commit r9123.
2011-03-26 20:17:21 +00:00
Ykkrosh
8b11b73226 Tweak OGRE preprocessor to fit in our code, and fix bug with #define inside #ifdef.
This was SVN commit r9122.
2011-03-26 20:09:54 +00:00
Ykkrosh
d1241cd6e9 Import original OgreGLSLProcessor from OGRE 1.7.2
This was SVN commit r9121.
2011-03-26 20:07:57 +00:00
Ykkrosh
9193ba56f9 Build fixes and whatnot
This was SVN commit r9115.
2011-03-23 21:15:22 +00:00
janwas
1f7e8d7194 per discussion with Philip, remove STL_HASH_MAP etc. because they're ugly, rarely used and superseded by boost::unordered*
This was SVN commit r9111.
2011-03-23 16:56:27 +00:00
janwas
588bfa11bf remove unnecessary utf8 includes
This was SVN commit r9110.
2011-03-23 16:32:44 +00:00
janwas
0999ba0941 refactoring:
- simplify sys_get_executable_name interface - return OsPath directly,
rename to sys_ExecutablePathname
- add validation of path components in GetDirectoryEntries
- replace multiple calls to GetModuleFileNameW with
sys_ExecutablePathname
- lift nearly all MAX_PATH limitations (required at work)

This was SVN commit r9109.
2011-03-23 16:14:47 +00:00
janwas
64a02932e3 refactor headers: path_util -> path, native_path -> os_path, remove where unnecessary
This was SVN commit r9108.
2011-03-23 14:43:35 +00:00
janwas
dcd192cb60 refactor path interface:
- use wrapper class instead of std::wstring (reduces mixing of
strings/paths; allows safe+easy join via operator/ and convenient
case-insensitive comparison via operator==, avoids NativePathFromString,
similar to boost::filesystem)
- NativePath -> OsPath
- add hash and To/FromJSVal for Path
- add TS_ASSERT_PATH_EQUALS
- replace _wfopen_s with sys_OpenFile
- remove obsolete SortFiles/Directories

This was SVN commit r9107.
2011-03-23 13:36:20 +00:00
historic_bruno
f618605477 Changes default random map sizes.
Tweaks random map resources.
Adds support for circular maps to rmgen library.
Various fixes in map generator.
On Miletus map, change player 2 civ, as Romans are not fully implemented
(fixes #758)

This was SVN commit r9104.
2011-03-23 08:12:04 +00:00
historic_bruno
0e0ed94926 Implements random map system, fixes #6.
Includes default library "rmgen" w/ API based on rmgen tool.
Modifies rmgen scripts Cantabrian Highlands, Neareastern Badlands, and
Latium.
Old map support dropped from MapReader.
Fixes a few bugs in existing game setup and initialization scripts.

This was SVN commit r9096.
2011-03-22 01:34:45 +00:00
Ykkrosh
c0a105432e Use path types and conversions more consistently.
This was SVN commit r9094.
2011-03-21 22:59:00 +00:00
Ykkrosh
83271ec816 Fix build errors.
Fix VFS root directory failing IsDirectory, which breaks the search for
textures.xml.
Fix incompatible change to loose cache name determination.

This was SVN commit r9092.
2011-03-21 21:06:08 +00:00
janwas
c3405e6f50 path improvements/fixes:
- replace more std::wstring with Native or VfsPath; wstring_from_utf8 ->
NativePathFromString
- replace sequences of Join(Path(), Basename+extension) with
ChangeExtension in wsdl, CacheLoader
- add Path::IsDirectory to replace .empty() / path_is_dir_sep(.back()).
also changed behavior to reflect the fact that "" is the VFS root
_directory_
- Path::Join now allows 2 identical path types (e.g. VfsPath) or one
char* literal (prevents inadvertently introducing non-safe characters).
to convert from wstring or wchar_t, use an explicit ctor (e.g.
VfsPath(wchar_t_string))

This was SVN commit r9091.
2011-03-21 19:54:08 +00:00
janwas
6d25329412 # towards locale-independent pathnames on Linux
c.f.
http://www.wildfiregames.com/forum/index.php?showtopic=14541&st=0&p=217250&#entry217250
and 2011-03-19 meeting

This was SVN commit r9090.
2011-03-21 17:53:13 +00:00
Ykkrosh
2392eb6720 Skip reporting caches that were initialised but never filled in
This was SVN commit r9086.
2011-03-19 15:17:14 +00:00
Ykkrosh
d805e764c5 # Render unit silhouettes when behind buildings.
Fixes #144.
Start using stencil buffer.
Simplify materials a little.

This was SVN commit r9076.
2011-03-18 16:57:54 +00:00
janwas
5b91e2d7ab move cache detection into separate file.
add support for CPUID.2 cache descriptors (many Bothans died to bring us
this information)
simplify the API - use one structure to describe cache and TLB; only one
accessor for both.

HWDetect: version change, since dtlbs and itlbs are no longer
distinguished

fixes #752

This was SVN commit r9074.
2011-03-18 16:44:03 +00:00
Ykkrosh
9659ec298b Fix off-by-one error in date logging, and rearrange to standard format.
This was SVN commit r9065.
2011-03-15 20:29:29 +00:00
Ykkrosh
51b58328f7 Fix negative 'unlogged' time in profiler at start of game.
Remove redundant Reset call.

This was SVN commit r9047.
2011-03-08 16:58:07 +00:00
Ykkrosh
7d6cfe58de Fix non-PCH build
This was SVN commit r9037.
2011-03-06 00:01:23 +00:00
Ykkrosh
6f9da85d9f Improve performance of full state hash computation, by skipping script components that are known to have no data.
Switch to much quicker (and less comprehensive) per-turn hashing in
multiplayer games.

This was SVN commit r9036.
2011-03-05 22:30:32 +00:00
Ykkrosh
18798c3f8d OS X build fix
This was SVN commit r9022.
2011-03-05 13:49:36 +00:00
Ykkrosh
e608d9269a Load entity templates for the AI via the progressive loader.
Display message while loading the map list for the setup screen.

This was SVN commit r9019.
2011-03-05 01:56:59 +00:00
Ykkrosh
6bcce22a88 Tell the profiler about a few more bits of code
This was SVN commit r9007.
2011-03-03 22:38:01 +00:00
Ykkrosh
58ae08522f Let local.cfg override the hardware-dependent defaults set by hwdetect
This was SVN commit r9005.
2011-03-03 01:49:49 +00:00
Ykkrosh
1c1564daaf Make profiler JSON output much more concise.
Right-align values in in-game profile viewer.
Add alternating row shading in profile viewer, to make it easier to
read.

This was SVN commit r9004.
2011-03-03 01:09:19 +00:00
Ykkrosh
16a4eb36dd Various minor optimisations.
Enable SpiderMonkey method JIT in Release mode.
Add Engine.ProfileStart/Engine.ProfileStop functions for scripts.
Fix AI to clone initial entity data and shared metadata.

This was SVN commit r9003.
2011-03-03 00:16:14 +00:00
Ykkrosh
cb0e322a61 # Minor AI fixes.
Avoid script errors on Miletus.
Use pre-existing female citizens as workers.
Fix autostart.

This was SVN commit r8999.
2011-02-27 19:20:36 +00:00
Ykkrosh
407b1ef80f Bump hwdetect version, to identify reports that include recent bugfixes
This was SVN commit r8992.
2011-02-26 19:41:01 +00:00
Ykkrosh
6d7c27edfe Fix occasionally rendering just terrain and no models when starting a game
This was SVN commit r8988.
2011-02-26 00:07:16 +00:00
janwas
d805ef356e FileExists -> VfsFileExists (see next commit)
scriptInterface: fix bool cast warning

This was SVN commit r8984.
2011-02-25 16:30:55 +00:00
Ykkrosh
77fe5c9e40 Disable shadows and fancy-water by default on some slower graphics devices.
See #623.

This was SVN commit r8983.
2011-02-25 02:00:57 +00:00
Ykkrosh
a903b4c9d3 Fix #684 (disable S3TC on R600 drivers).
Clean up hwdetect a tiny bit.

This was SVN commit r8982.
2011-02-25 01:31:00 +00:00
Ykkrosh
0378500bdc Fix #712 (remove S3TC warning).
Add timer to S3TC decoder so it's still easy to determine if it was
used.

This was SVN commit r8981.
2011-02-25 01:28:46 +00:00
Ykkrosh
059a53dd37 Fix startup hang on OS X, caused by using timers before initialising them
This was SVN commit r8974.
2011-02-23 09:19:41 +00:00
Ykkrosh
6b783aebd6 Try to fix build errors
This was SVN commit r8973.
2011-02-22 21:50:26 +00:00
Ykkrosh
9bbda8b80b HTTP proxy discovery for Windows
This was SVN commit r8969.
2011-02-21 21:54:47 +00:00
Ykkrosh
25039d3aff Fix build errors with old glext.h.
Report full cache details, and lsb-release when available.

This was SVN commit r8968.
2011-02-21 18:56:23 +00:00
Ykkrosh
ee8b193cdb Fix profiler crash differently
This was SVN commit r8967.
2011-02-21 11:57:01 +00:00
janwas
a155809447 avoid crash due to null pointer in profiler (triggered by returning from the root node)
This was SVN commit r8966.
2011-02-21 09:41:11 +00:00
Ykkrosh
d75d9c3b75 Make the script profiler more useful, by giving the filename/line for anonymous functions.
Fix the turn-based profiler a bit.

This was SVN commit r8964.
2011-02-21 02:16:12 +00:00
Ykkrosh
d7a243343d Add per-turn counts to profiler, as well as per-frame.
Remove percent-of-parent and percent-of-frame timings since they're not
particularly useful.
Simplify profiler update code by using RingBuf.
Handle profiler keys via character codes rather than keysyms, to
hopefully work with different keyboard layouts.
Make console intercept all keys, to stop digits, shift-D, etc having
unexpected side-effects.
Disable console copy/paste when console is inactive.

This was SVN commit r8960.
2011-02-20 20:50:26 +00:00
Ykkrosh
5f64937d02 Skip detecting some not-very-useful GL values that cause errors in some drivers
This was SVN commit r8953.
2011-02-20 11:46:48 +00:00
Ykkrosh
c29f2d26b3 Add some more stuff to hwdetect, because there can never be too much
This was SVN commit r8951.
2011-02-20 00:54:36 +00:00
Ykkrosh
b2f5dd1b62 Non-PCH build fixes
This was SVN commit r8949.
2011-02-19 22:30:34 +00:00
janwas
7445342b61 wdll_ver: avoid errors while reading DLL version due to (lack of) FS redirection
UserReport: avoid windows iterator debugging warning due to invalid
operator[]

This was SVN commit r8942.
2011-02-19 19:15:00 +00:00
Ykkrosh
f3372bf11d Add some rough performance reporting.
Make the profiler converge a bit faster.

This was SVN commit r8939.
2011-02-19 03:14:37 +00:00
Ykkrosh
ceb4bc9b94 Report more hardware details
This was SVN commit r8937.
2011-02-19 00:39:32 +00:00
Ykkrosh
1c7e33b528 Remove a load of implicit CStr type conversions, since they're error-prone and can cause silent data loss.
Handle most CStr8/CStrW conversions via UTF-8 instead of effectively
assuming Latin-1.
Return UTF-8 strings from Xeromyces API.

This was SVN commit r8929.
2011-02-17 20:08:20 +00:00
Ykkrosh
3d997365d8 Fix CStr numeric constructors on 32-bit platforms.
Remove unnecessary assignment operators.

This was SVN commit r8926.
2011-02-16 21:14:08 +00:00
Ykkrosh
0da7e822ff # Add opt-in automatic feedback system.
Add GL implementation limits to hwdetect.
Make the in-game manual support multiple text files.
Remove unnecessary instruction on how to close the manual window.
Make guitextobject.caption return the original value without stripping
formatting tags.
Remove unused non-VFS support from config system.
Support writing config files back to their original path.
Remove unnecessary user profile directory; use normal config directory.

This was SVN commit r8925.
2011-02-16 20:40:15 +00:00
Ykkrosh
fca69efd76 Fix build for GCC 4.5
This was SVN commit r8920.
2011-02-13 18:38:22 +00:00
Ykkrosh
11837204b6 Fix archive builder to not compress the recently-renamed terrain blend textures
This was SVN commit r8919.
2011-02-13 17:37:33 +00:00
Ykkrosh
c7056490b2 Restrict the initial window size to the screen size (hopefully fixes #532).
This was SVN commit r8915.
2011-02-12 21:21:07 +00:00
Ykkrosh
eb074ba28c Fix #495 (warn when locale is bogus), based on patch from darrenhoffman and sergiovier
This was SVN commit r8913.
2011-02-12 00:19:59 +00:00
Ykkrosh
11bc751fd3 Save replay log's commands.txt in new locations when playing multiple games in a single session
This was SVN commit r8906.
2011-02-10 23:57:19 +00:00
Ykkrosh
b8925fbbc9 # Support AI construction of buildings.
Pass terrain passability data to AI scripts.
Expand pathfinder passability data to 16 bits per tile, to allow more
classes.
Support 16-bit ints in serializer.
Partially support JS typed arrays.
Allow foundations to be placed on top of units (fixes #499).
Stop farms and fishes blocking movement (fixes #534).
Add obstruction flags to allow finer control over what they block.
Associate entity IDs with obstruction shapes, to allow finding colliding
entities.
Support moving to the edge of a target entity with inactive obstruction.
Support foundation entities in AI.
Support playing as non-hele civs.

This was SVN commit r8899.
2011-02-10 16:06:28 +00:00
Ykkrosh
fe21c5e023 # Rewrite fog-of-war rendering.
Disable shadows when only 2 TMUs available.
Clean up some other rendering code.

This was SVN commit r8882.
2011-02-03 01:12:24 +00:00
Ykkrosh
1e02fe70a7 Add texture limits to hwdetect
This was SVN commit r8881.
2011-01-31 18:59:37 +00:00
Ykkrosh
03c75100ab # Fix terrain blending logic.
Add terrain priority rendering mode in Atlas.
Fix terrain painting in Atlas to be less profligate with priority
values.
Support hotloading of blend textures.
Clean up some trivial things.

This was SVN commit r8872.
2011-01-29 16:31:48 +00:00
Ykkrosh
f39f279132 Add AI script code to provide a cleaner API around the engine interface.
Handle AIProxy entirely through scripts.
Support structured clones of script values.
Improve performance.
Support multiple script contexts sharing a runtime.
Use a separate context per AI player.

This was SVN commit r8866.
2011-01-15 23:35:20 +00:00
Ykkrosh
dd501b2a5a # Add initial basic player AI framework.
Support direct access to serializer streams, so serializers can be
nested.
Make component script "this.template" read-only.
Stop globally-subscribed component scripts receiving messages posted to
local components, to reduce out-of-sync risks.
Move pathfinder data out of entity template directory.
Fix GuiInterface deserialization.

This was SVN commit r8865.
2011-01-12 12:29:00 +00:00
Ykkrosh
40933c06e1 Primitive support for gamepad camera movement
This was SVN commit r8844.
2010-12-30 19:45:13 +00:00
Ykkrosh
ad3f33dd27 Build fix for very old SDL
This was SVN commit r8833.
2010-12-11 02:25:21 +00:00
janwas
ba2a9d7af3 improvements from work: [update-workspaces required]
- split precompiled.h into several headers (simplifies reuse)
- enable additional warnings not in W4
- split ErrorReaction into ErrorReactionInternal - clarifies which
values can actually be returned by debug_DisplayError
- wsdl: slightly safer HDC usage via CS_OWNDC, avoid dipping into DC
cache via ValidateRect instead of BeginPaint; remove unused thread
create
- StdDeserializer - wasn't including byte_order => BYTE_ORDER was
undefined
- wsysdep: clean up error dialog message handling

This was SVN commit r8828.
2010-12-09 11:16:21 +00:00
Ykkrosh
2540e17f45 Fix non-PCH builds
This was SVN commit r8816.
2010-12-08 18:54:05 +00:00
Ykkrosh
8ddef2fee0 Add fast-forward/rewind commands, to help with testing.
This was SVN commit r8803.
2010-12-06 19:58:06 +00:00
historic_bruno
1201956b93 Additional cleaning up of logging: removed LOG_CATEGORY macro definitions.
This was SVN commit r8792.
2010-12-05 08:50:33 +00:00
historic_bruno
19dbbb816d Changed all references from old CLogger API to use the new API. Removed old API. Fixes #247
This was SVN commit r8791.
2010-12-05 08:41:55 +00:00
historic_bruno
95da3789cd Handle SDL_ACTIVEEVENT which notifies us of mouse focus change. If mouse focus is lost don't render cursor, reverting back to OS style. When focus is regained, render cursor again. Fixes #626
This was SVN commit r8789.
2010-12-05 05:17:28 +00:00
Ykkrosh
819bacd538 Automatically disable audio on OS X since it's stupid and broken.
This was SVN commit r8788.
2010-12-04 19:42:50 +00:00
Ykkrosh
4575c26616 Disable compression of public.zip (fixes #671).
This was SVN commit r8785.
2010-12-04 15:57:55 +00:00
Ykkrosh
4b37898ab9 Fix tests.
This was SVN commit r8784.
2010-12-04 15:08:18 +00:00
Ykkrosh
74114bf09a Handle XMB caching with the same system as texture caching.
Fixes #694.

This was SVN commit r8782.
2010-12-04 00:08:26 +00:00
historic_bruno
2963422173 Add screenshot location logging w/ rendered console message. Rendered messages are hidden before screenshot is taken. Fixes #675
This was SVN commit r8675.
2010-11-21 01:25:16 +00:00
Ykkrosh
c36fc2b8d7 Add script-based system for doing messy stuff based on system configuration.
Display warning for certain broken NVIDIA drivers.

This was SVN commit r8663.
2010-11-20 19:46:49 +00:00