Commit Graph

320 Commits

Author SHA1 Message Date
Ykkrosh 2d1be3d47e Improve correctness of hotkeys at low framerates.
SDL queues up all the input events received in a frame. When the hotkey
system saw a key up/down event, it immediately updated its
HotkeyIsPressed state and then pushed a hotkey event onto the end of the
queue.

If the initial queue was e.g. [key-down shift, key-press Z, key-up
shift], the hotkey event triggered by Z would be processed after the
key-up shift had updated the HotkeyIsPressed state, so the handler of
the Z hotkey would not think the shift hotkey was pressed.

If the initial queue was e.g. [key-press Z, mouse-click], the hotkey
triggered by Z would be processed after the mouse-click event, so it
could apply to the wrong building selection.

Fix by pushing the hotkey events onto a special queue that gets
processed before any subsequent SDL input events.

Also update the HotkeyIsPressed status when the HOTKEYDOWN/HOTKEYUP
events are processed, not when they are generated, to guarantee they are
consistent with the DOWN/UP events.

Fixes #1869.

This was SVN commit r14057.
2013-10-30 01:38:32 +00:00
Ykkrosh 5778484a77 Refactor text renderer
Replace unifont with CFont and CFontManager, since the h_mgr interface
was
needlessly inconvenient.

Load the font textures through CTextureManager, to support dynamic
reloading (e.g. when resetting GL state - see #741).

Add CFontMetrics as a convenient wrapper for code that just wants to
measure text.

Fixes #1117.

This was SVN commit r14016.
2013-10-18 15:53:07 +00:00
historic_bruno 7901ed51d4 Implements skirmish maps, based on patch by sanderd17, fixes #1198. Skirmish maps are like scenarios, except the player can choose their civ during match setup. To create a skirmish map: place some skirmish entities for each player in Atlas (see templates/skirmish/* for examples), uncheck the player's civ in Atlas' player panel if desired, and save in the maps/skirmishes directory. The map will appear in match setup under the "Skirmish" match type.
Implements custom, VFS-based map load/save dialogs for Atlas (replaces
broken native file dialogs), fixes #631, #889.
Fixes map loading/saving to handle arbitrary subdirectories for better
organization.
Adds default settings to Atlas player panel, fixes #1872. Each setting
now has a checkbox to choose whether it should be saved with the map
(avoids writing lots of useless default data for each map).
Adds map preview setting to Atlas, refs #1745.
Cleans up and simplifies some duplicate code.
Fixes optional serialization performance test.

This was SVN commit r13938.
2013-10-04 02:29:16 +00:00
Yves 12e2428495 Changes the Renderer to expose global functions to scripts instead of using CJSObject.
Fixes #2137
Refs #1886

This was SVN commit r13877.
2013-09-21 08:24:45 +00:00
historic_bruno 52d6a8036d This was SVN commit r13725. 2013-08-21 05:37:28 +00:00
historic_bruno f947fa6afe Fixes stack overflow in stack dump logic, by special-casing boost::unordered types, fixes #1813.
Adds INIT_HAVE_DISPLAY_ERROR init flag to correctly override
ah_display_error in Atlas (InitVfs was overriding it again), but don't
use it because it's ugly and broken, refs #1729

This was SVN commit r13724.
2013-08-20 21:07:42 +00:00
sanderd17 a9c71e39a4 make new elevation tool more drastic + add RMB action
This was SVN commit r13684.
2013-08-17 14:02:18 +00:00
sanderd17 b820f6e6ae Add a pike elevation tool to make sharp pointed mountains. Fixes #2059
This was SVN commit r13672.
2013-08-16 14:46:54 +00:00
historic_bruno 7ff167e7de Removes more unused variables, based on patch by Markus, refs #1852.
Adds TODOs to use POT textures in fancy water rendering.

This was SVN commit r13663.
2013-08-15 18:25:32 +00:00
historic_bruno a8a968d32c Catch exceptions by reference (by convention), based on patch from Markus, refs #1852
This was SVN commit r13421.
2013-05-22 22:27:53 +00:00
historic_bruno 92fdbb49b6 Moves particle interpolation to its own simulation component.
Fixes inconsistency between Atlas and in-game particle rendering during
pauses.
Fixes some issues related to Atlas simulation test and map loading.

This was SVN commit r13184.
2013-02-22 23:20:59 +00:00
historic_bruno 1f7e6cb2ba Adds actor seed support to scenario XML data, optionally used in place of entity ID.
Fixes Atlas previews not matching placed entity.
Fixes in-game building previews not matching final entity (except
walls).

This was SVN commit r13144.
2013-02-03 02:16:52 +00:00
Ykkrosh 75a23856cf Fix some static analysis warnings
This was SVN commit r13101.
2013-01-21 20:33:25 +00:00
historic_bruno e91a918164 Fixes race condition in EnsureMonotonic on 32-bit builds, which was causing unreliable timer behavior, fixes #1729
This was SVN commit r12927.
2012-12-03 13:24:12 +00:00
historic_bruno f7608bf270 Attempted fix to prevent strange timer-related bug in Atlas (fails to start when opened from the game's main menu), refs #1729
This was SVN commit r12902.
2012-11-30 21:34:33 +00:00
myconid 1fb7889539 Postproc manager
This was SVN commit r12755.
2012-10-15 10:34:23 +00:00
historic_bruno 7d8dc05c68 Fixes actor viewer bug where view was obstructed by map's water level. Fixes #1562.
Adds water plane option to actor viewer.

This was SVN commit r12715.
2012-09-28 18:20:36 +00:00
myconid c9abf6f68c Heightmap importing in Atlas
This was SVN commit r12308.
2012-08-07 18:49:46 +00:00
Deiz 3c0bd23108 Slightly speed up actor rendering; have selectables properly handle fog of war, etc. Refs #1365.
This was SVN commit r12241.
2012-07-30 21:06:54 +00:00
historic_bruno 89399e08e6 Implements always visible hero selection rings, based on patch by Deiz/F00. Fixes #1365
This was SVN commit r12148.
2012-07-19 04:45:01 +00:00
vts 6b50a660b9 Added elapsed real time (as opposed to elapsed simulation time) to MT_Interpolate messages. Fixes leftover TODO from #824. Refs #824.
This was SVN commit r11944.
2012-06-06 19:37:03 +00:00
vts 490182ddd0 Wall placement. Closes #786.
This was SVN commit r11760.
2012-05-05 19:22:22 +00:00
vts 61fad4a2b5 Fixed strange selection ring fadeout on unit deselection in Atlas
This was SVN commit r11634.
2012-04-22 17:49:43 +00:00
vts 34fc883317 Pretty unit selection overlay rings. Fixes #824.
This was SVN commit r11623.
2012-04-22 04:04:02 +00:00
historic_bruno 4d8ba45375 Removes unnecessary change from [11575]
This was SVN commit r11578.
2012-04-20 03:01:09 +00:00
historic_bruno c8745ee41f Handle game ending in Atlas a bit more gracefully, it now continues until the user stops the simulation test. Fixes #641.
This was SVN commit r11575.
2012-04-20 01:41:54 +00:00
Ykkrosh 3027ce1a04 Rationalise terrain dirty-rect coordinates.
Clean up some whitespace.

This was SVN commit r11543.
2012-04-17 22:35:34 +00:00
historic_bruno 5cfeccea09 Adds eyedropper tool to Atlas terrain brush (Shift+Click to activate). Fixes #1122.
Adds preview box showing currently selected terrain.

This was SVN commit r11528.
2012-04-17 02:43:52 +00:00
historic_bruno 772b38e6be Fixes player colors in actor viewer, based on patch by mk12. Fixes #1022.
This was SVN commit r11527.
2012-04-17 01:26:24 +00:00
Ykkrosh 0e1b5522d6 Fix #868 (move wxWidgets Unix config files to XDG basedir location), based on patch from leper.
Fix handling of set but empty XDG environment variables.

This was SVN commit r11374.
2012-03-19 22:40:06 +00:00
historic_bruno 4eec2bf5d2 Fixes some bugs related to deleting saved games (in particular, load/delete was broken if the file was deleted externally while the game was running).
Adds saved game directory to the hotload watch list.
Logs error instead of crashing when saved game is not found.
Changes Atlas double-click selection to only pick units from the same
player.

This was SVN commit r11332.
2012-03-14 00:23:28 +00:00
historic_bruno e6c58b2a3e Adds log rendering to actor viewer.
This was SVN commit r11272.
2012-03-08 01:16:29 +00:00
historic_bruno 4cdde2b62a Replaces Atlas "Screenshot" option with normal lower-res version (saves result as PNG).
Adds new "Big screenshot" option (saves result as 6400x4800 BMP). Refs
#984.

This was SVN commit r11257.
2012-03-06 00:15:48 +00:00
vts 4cb7972ec2 Renamed some Atlas classes and g_GameLoop to better reflect their Atlas-related nature and to lower potential confusion with similar main-game-related functionality. Refs #678.
This was SVN commit r11232.
2012-03-03 23:48:04 +00:00
historic_bruno ef1e8de44e Removes size_t from shareable types to prevent 32/64-bit errors.
Adds unsigned int to shareable types. In the future, use
int32/player_id_t for player IDs and uint32/entity_id_t for entity IDs.

This was SVN commit r11189.
2012-02-27 23:16:31 +00:00
historic_bruno 5f23cd6d10 Changes Atlas ObjectID type to unsigned int, fixes 64-bit build errors caused by size_t.
This was SVN commit r11186.
2012-02-27 22:29:53 +00:00
historic_bruno 7d9e98b00e Adds multiple entity selection to Atlas (including move/delete). Fixes #678.
Makes all actors selectable in Atlas and gives them selection rings (an
EditorOnly flag is used in the template for Atlas-only selectables).
Adds player colors to Atlas selection rings.
Fixes decal selection by falling back to old-style AABBs. Refs #1032.
Replaces UnitManager selections with EntitySelection helpers.
Adds DrawOverlays to Atlas views, for Atlas-specific rendering.
Fixes bug where selection rings conflicted with Move/rotate tool in
Atlas simulation test.

This was SVN commit r11177.
2012-02-27 05:32:35 +00:00
historic_bruno b4a33851e6 Improves CColladaManager caching behavior: skeletons.xml changes now invalidate cached .pmd/psa files, CCacheLoader is used for consistency, adds support for archived files. Fixes #1167.
Adds COLLADA conversion to archive builder.
Fixes archive builder on Windows.
Moves error logging from CCacheLoader::TryLoadingCached to its callers,
because this failure can be legitimate (in the case of uncached .pmd/psa
files).

This was SVN commit r11100.
2012-02-19 03:30:59 +00:00
Ykkrosh 531b40578a More GLES compatibility.
Add config option to disable hardware cursors on Windows.

This was SVN commit r11053.
2012-02-12 20:45:31 +00:00
historic_bruno 08bd07ddd6 Adds safe bool operator to ICmpPtr, replacing the null() method, based on patch by leper. Also changes bool operator in AtSmartPtr to safe bool. Fixes #1077.
Changes some CmpPtr variable names for consistency.

This was SVN commit r11036.
2012-02-08 02:46:15 +00:00
Ykkrosh 3fab2729b5 Partial SDL2 compatibility
This was SVN commit r11033.
2012-02-06 22:47:35 +00:00
historic_bruno fc27a5c0ea More FreeBSD build fixes.
Fixes some warnings about files that don't end with newline.

This was SVN commit r10991.
2012-01-30 06:21:11 +00:00
historic_bruno 8fabaa4f8c Fixes Atlas crashing when random map generator fails, load the blank map for now.
This was SVN commit r10939.
2012-01-21 00:53:34 +00:00
vts 91652bdf6e Implemented nested territory boundaries. Fixes #918.
Fixed out of bounds memory access in Atlas due to always using global
terrain in TerrainOverlay
Fixed wrong player ID calculation in TerritoryOverlay

This was SVN commit r10929.
2012-01-18 21:22:58 +00:00
historic_bruno 893cb2668e Renames our sdl.h to libsdl.h, to avoid case sensitivity errors when it includes SDL.h.
This was SVN commit r10904.
2012-01-12 23:32:27 +00:00
Ykkrosh ce67dfd333 Rename CELL_SIZE to TERRAIN_TILE_SIZE, to free up the term "cell" for other concepts.
This was SVN commit r10902.
2012-01-12 12:51:10 +00:00
historic_bruno 5bf70e52de Fixes Atlas startup in Windows when using SDL.
This was SVN commit r10855.
2012-01-02 22:48:43 +00:00
Ykkrosh c4bb67a1ca Fix #1064 (use ++it instead of it++ for consistency), based on patch by Echelon9
This was SVN commit r10822.
2011-12-29 01:17:03 +00:00
vts 427674f713 Fix for compilation failure of [10703] on 64-bit systems
This was SVN commit r10705.
2011-12-10 11:53:39 +00:00
vts fbb0e3995f Added prop point axes markers to Atlas' Actor Viewer panel
This was SVN commit r10703.
2011-12-10 05:11:25 +00:00