Commit Graph

429 Commits

Author SHA1 Message Date
sanderd17 c339928c6f Disallow placing some special entities in Atlas. Fixes #1696. Patch by trompetin17
This was SVN commit r15467.
2014-06-30 10:20:20 +00:00
sanderd17 7d265cec80 Add copy-paste (CTRL+C/V) to Atlas. Patch by trompetin17. Fixes #96
This was SVN commit r15381.
2014-06-17 13:14:25 +00:00
Ykkrosh 1882f28504 New unit renderer.
Instead of each CCmpVisualActor rendering itself individually, collect
all the units in a single CCmpUnitRenderer. This avoids the overhead of
doing Interpolate/RenderSubmit calls every frame for every object in the
world. It also allows more efficient culling.

CCmpUnitRenderer knows the positions of each object at the start and end
of each turn, and computes the bounding sphere of the object along that
path. That allows quick culling without recomputing the precise
interpolated transform every frame. (In the future it could be improved
much more.)

Clarify and clean up the sending of PositionChanged messages, and add
new InterpolatedPositionChanged.

Remove the forceFloating parameter from GetInterpolatedTransform, since
it doesn't fit the new design. Replace it with a (non-synchronised) flag
in CCmpPosition.

Move construction progress from CCmpVisualActor to CCmpPosition, so that
it consistently affects all position/transform computation.

Refs #2337.

This was SVN commit r15265.
2014-06-01 18:24:50 +00:00
JoshuaJB a5639631ee Texture system refactoring and cleanup, fixes #2455, patch by IronNerd.
This was SVN commit r14835.
2014-03-13 02:37:05 +00:00
wraitii e2f4379e9a Fix an issue with corruption of water data when the actor editor opened in Atlas.
Potential marginal optimizations to the water data creation code.

This was SVN commit r14784.
2014-02-25 06:27:15 +00:00
wraitii 15ec863aec Substantial speed-up of the foam generation code.
Remove waves for now as they were unsatisfactory.
Removes "shininess" as a water parameter as it was basically useless.
Add a button in Atlas to recompute water parameters so you can now see
fog in Atlas.

Fixes #1743, #1803 (invalid)
Refs #1875, #2114, #48.

This was SVN commit r14514.
2014-01-05 16:15:20 +00:00
Yves 4b1297b328 Removes g_ScriptingHost and implements global to compartment 1 to 1 relation.
Each GUI Page gets its own compartment and all ScriptInterfaces in the
same thread should now use the same JS Runtime.
This is required for the SpiderMonkey upgrade.
Check the ticket for details.

Closes #2241
Refs #1886
Refs #1966

This was SVN commit r14496.
2014-01-04 10:14:53 +00:00
wraitii a7cafe75aa "Reveal all player" id back to -1, add some "ensure" to catch invalid player ids and be safer.
This was SVN commit r14465.
2013-12-31 21:30:48 +00:00
wraitii fe2a97b0c9 Change some useless std::map into std::vector for LOS. Player "0" now reveals the LOS for all.
This was SVN commit r14463.
2013-12-31 16:38:11 +00:00
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