Update MSVC solution broken in 545eb5c
MOD authors take note that if you used those, your mod is now broken.
Fix console to handle strings that are multiline strings normally. (i…
…e: hello\nblah now is handle as being given as two inputs to correct the line counters)
Remove left-over code in pre-multiplied tool.
Made the brightness of the alpha-blended texture be treated as the alpha mask itself.
Implement MMB rotation for Qt backend.
RMB rotation broken in f32614b. Broken RMB rotation changed to broken MMB rotation in 52b91bf. Except that MMB rotation was implemented in 09d73b0, which was in a different branch than 52b91bf. So, if reading history correctly, it seems that MMB rotation was implemented only implemented for the SDL backend (after the Qt backend was created). Fixes ticket:2578.
Enable/disable the correct colours.
Introduced in 5fa3d50. Fixes ticket:3043.
Fix research cancellation not registering in UI.
If cancelling a research, then the next completed research in the same facility would linger after completion. Fixes ticket:3046.
Only require moc if we are going to use it for anything.
Currently moc is only used if the Qt backend is in use.
Now shows if the host has disabled tanks or cyborgs or VTOLs. Legend: Red blip means can't join game (wrong version / mod or game full) Amber blip means the game is password protected. Green blip means no limitations on joining.
Save droids/structures/features using alphabetically-increasing secti…
…on names. Since the .ini sections are currently alphabetically sorted by QSettings, this means later loading the droids/structures/features in the same order. Leaving the hack in place which loads transporters first, for now.
Fix scrolling at ridiculously high framerates.
Affects scrolling due to using the arrow keys or moving the mouse to the window edge. Scrolling due to clicking on minimap no longer terminates at a GPU-dependent time. Scrolling using the arrow keys or moving the mouse to the window edge now overrides the fancy warcam. So clicking on the mini-map by accident no longer wastes several seconds helplessly scrolling to somewhere random despite the user telling it to scroll the other way.
Fix dead pointer usage on factory destruction during secondary order …
…editing of said factory. Right-clicking a factory just before it's destroyed no longer crashes.
Balance changes from Iluvalar.
BODIES Tiger (Body9REC) price: 71$ => 91$ prod:420 => 534 armour 20.25=>17 HP:284=>204 Scorpion (Body8MBT) price: 39$ => 44$ prod:250 => 281 armour 12=>11 HP:125=>103 Retribution (Body7ABT) price: 100$ => 120$ prod:600 => 718 armour 23=>19 HP:200=>142 Panther (Body6SUPP) price: 57$ => 64$ prod:300 => 337 armour 15.75=>14 HP:193=>165 Cobra (Body5REC) price: 46$ => 51$ prod:250 => 276 armour 12.75=>12 HP:130=>119 Bug (Body4ABT) price: 25$ => 26$ prod:100 => 103 armour 8=>7 HP:55=>55 Retaliation (Body3MBT) price: 68$ => 70$ prod:400 => 411 armour 18.75=>18 HP:100=>96 Leopard (Body2SUP) price: 41$ => 40$ prod:220 => 215 armour 10.5=>11 HP:107=>115 Viper (Body1REC) price: 30$ => 30$ prod:150 => 150 armour 8.5=>8 HP:65=>68 Dragon (Body14SUP) price: 182$ => 216$ prod:1000 => 1182 armour 30=>25 HP:350=>215 Wyvern (Body13SUP) price: 156$ => 156$ prod:900 => 899 armour 28=>28 HP:350=>350 Mantis (Body12SUP) price: 52$ => 67$ prod:350 => 445 armour 18=>15 HP:180=>125 Python (Body11ABT) price: 60$ => 71$ prod:350 => 410 armour 17.25=>16 HP:200=>170 Vengeance (Body10MBT) price: 130$ => 160$ prod:800 => 980 armour 27.25=>23 HP:300=>212 PROPULSIONS Tracks (tracked01) HP:300=>237 Hover (hover01) HP:150=>93 Half-tracks (HalfTrack) HP:200=>160 WEAPONS Incendiary Mortar (Mortar-Incenediary) price: 150$ => 314$ prod:750 => 1567 HP:5=>1 DMG 90=>48 Incendiary Howitzer (Howitzer-Incenediary) price: 250$ => 522$ prod:1000 => 2085 HP:10=>3 DMG 200=>102 Bombard (Mortar2Mk1) price: 200$ => 169$ prod:1000 => 843 HP:5=>43 DMG 120=>129 Inferno (Flame2) price: 80$ => 140$ prod:400 => 698 HP:75=>25 DMG 40=>29 Plasmite Flamer (PlasmiteFlamer) price: 80$ => 154$ prod:400 => 769 HP:75=>25 DMG 63=>40 VTOL Plasmite Bomb Bay (Bomb5-VTOL-Plasmite) price: 225$ => 303$ prod:1000 => 1345 HP:600=>438 DMG 1000=>864 VTOL Thermite Bomb Bay (Bomb4-VTOL-HvyINC) price: 225$ => 322$ prod:1000 => 1431 HP:360=>218 DMG 400=>336 VTOL Cluster Bomb Bay (Bomb1-VTOL-LtHE) price: 150$ => 72$ prod:600 => 288 HP:420=>782 DMG 120=>169 Nexus Link Turret (SpyTurret01) price: 400$ => 205$ prod:1600 => 820 HP:200=>561 DMG 2=>2 EMP Cannon (EMP-Cannon) price: 200$ => 41$ prod:800 => 161 HP:500=>1906 DMG 70=>143 B-2) Emplacements for mortars Incendiary Mortar Pit (Emplacement-MortarPit-Incenediary) price: 135$ => 111$ prod:425 => 350 armour 10=>12 HP:300=>365 Incendiary Howitzer Emplacement (Emplacement-Howitzer-Incenediary) price: 325$ => 254$ prod:550 => 429 armour 10=>14 HP:400=>512
Only ignore buildings at pathfinding destination, not source.
Trucks would build a factory, then pathfind through it on the way to the next factory, and get stuck driving into the newly-built factory. See 0119eda. Fixes ticket:3050.
Fix dead pointer cleanup in order lists, fixes desynch on manually pi…
…cking up barrels. Only a specific list of order types were cleaned up. The list did not contain DORDER_RECOVER, so queueing oil barrel pickup would result in undefined behaviour (which includes desynchs). Queueing pickup of the same oil barrel twice would result in valgrind errors. Now cleans up all dead pointers, without checking which type of order it is. Introduced by allowing queueing DORDER_RECOVER in ade80e8, but it didn't really make sense to check the order type, since a dead pointer is a dead pointer, independently of order type. Since the order queue no longer abuses a void * to hold a BASE_OBJECT * or STRUCTURE_STATS * depending on order type, the check could be removed.
Restore version_getVersionString() call for displaying hosted version.
Since actually displaying the literal string "version_getVersionString()" isn't sufficiently informative.
qtscript: Assert that input to timer/queue/bind functions are quoted …
…functions. Add modules property to relevant buildings. Simplify and document droid types.
qtscript: Rename orderDroidStatsLoc() to orderDroidBuild(). The old v…
…ersion will remain available for a while to give people time to convert.
qtscript: Add droidFromId(), setDroidExperience() and an experience p…
…roperty to droids.
qtscript: New global 'version' that gives version number of game.
New object property 'health' that gives percentage damage. New object properties 'armour' and 'thermal' that give kinetic and heat armour, respectively.
qtscript: Add setTutorialMode(bool) function.
Sets bInTutorial so we can properly restrict players.
Revert "Balance changes from Iluvalar" pending more discussion
and input from the player community. This reverts commit e94ba3d.
Challenges: Fix team selection. Fix position lock. Fix tooltips. Show
challenge name in pregame dialog. Allow setting AI for each player.
qtscript: Added new event when owned objects are destroyed. Rules Scr…
…ipt now controls whether minimap is shown or not.
qtscript: Rename droidFromId to objFromId, since there absolutely no …
…reason to limit it to droids.
Make template design available from game start. Make defensive buildings
available without HQ. Increase sensor range of HQ. This closes ticket:3055
Fix NETsetPlayerConnectionStatus(CONNECTIONSTATUS_NORMAL, NET_ALL_PLA…
…YERS), do not overwrite random memory. Previous behaviour was to overwrite 4 spots in random memory (random location was a compile-time constant) with NULL pointers, with a stride of 11 pointers. New behaviour is to actually clear the connection-status icons. Introduced in 2e01e81.
Temporary hack to fix T2/T3 for now. Basically just ignoring attempts…
… to research things that do not exist (instead of having lots of unreachable techs that do nothing, which was the previous state). Remove duplicate script code for setting amount of starting power; as a side effect starting power may be less now for T2/T3. Will fix that later when scripts know the T2/T3 state. Closes ticket:3044
Challenges/qtscript: The path to player-specific scripts must now be
specified, so that they can be read from Challenges/ as well.