Commit Graph
103 Commits
Author SHA1 Message Date
Asdow 5697acabb3 Take most recent corpse from tile
Fixes crash when taking a corpse on roof when multiple corpses are stacked on one tile.
2026-05-06 11:28:11 +03:00
Asdow 4fcf03d31a Include cleanup Tactical/.*cpp 2025-12-09 00:35:18 +02:00
steph-pgandmajcosta 1e1eb88864 Remove extra line 2025-10-14 05:35:40 -03:00
steph-pgandmajcosta 72e586a378 Move visibility check after already included pCorpse check 2025-10-14 05:35:40 -03:00
steph-pgandmajcosta 07dbf9c848 Make 3rd party corpses invisible till they in fov 2025-10-14 05:35:40 -03:00
Asdow 82aca548f5 Merge branch 'master' into ExtraMercs 2025-09-24 16:14:10 +03:00
BeatAroundTheBuscherandGitHub ed00830202 Fixes Upper/Lower Casing for include paths (#487)
* Fixing upper/lower case for includes

types.h, zconf.h and zlib.h were renamed so that global includes like Types.h
are not used.
2025-08-16 22:01:12 -03:00
Asdow c62d767622 Update to Master 2025-08-08 18:00:31 +03:00
AsdowandGitHub 11bb0f741f Fix music playing when crepitus is present (#341)
UseCreatureMusic( HostileZombiesPresent() ); was overriding the music mode set in PrepareCreaturesForBattle() when encountering crepitus or being in the creature caves, resulting in regular tense and battle music being played.
2024-12-02 01:10:58 +02:00
Asdow bfb724eab9 Use SoldierID 2024-12-01 18:23:52 +02:00
Asdow 24656f2810 Use SoldierID 2024-11-30 15:20:18 +02:00
Asdow dbc4135974 Use SoldierID 2024-11-20 21:03:08 +02:00
Asdow f58cf588a6 Mark TacticalStatusType::sSlideReason as _UNUSED
Removed from function call parameters at the same time.
It was supplied to SlideTo, SlideToLocation and SoldierLocationRelativeToScreen but was never used.
2024-11-17 14:20:37 +02:00
Asdow ee429fd1f4 Convert SOLDIERTYPE->ubAttackerID to SoldierID 2024-11-15 22:51:48 +02:00
Asdow 10250dc035 Merge branch 'master' into ExtraMercs 2024-11-09 13:44:53 +02:00
AsdowandGitHub 49a119e6b9 Convert INVTYPE boolean fields to flagmask (#325)
Rearranged fields from largest to smallest to remove alignment padding
2024-08-22 08:48:29 +03:00
AsdowandGitHub b8a870df02 Reduce code duplication (#233)
* Use ConvertGridNoToCenterCellXY instead of CenterX & CenterY

* Add direction utility function

We have a lot of places in the code that calculate direction based on center cell coordinates, but lack a utility function for it similar to other direction methods.

* Use utility function for calculating direction

* Use ConvertGridNoToCenterCellXY

* Use utility function for direction

* Use ConvertGridNoToCenterCellXY instead of CenterX & CenterY

* Use ConvertGridNoToCenterCellXY instead of CenterX & CenterY

* Remove CenterX & CenterY functions

Use ConvertGridNoToCenterCellXY instead

* Remove CenterX & CenterY calls from UB configuration

* Address review feedback

* Remove duplicate function

ConvertGridNoToCenterCellXY and ConvertMapPosToWorldTileCenter do the exact same thing

* Use PythSpacesAway instead of GetRangeFromGridNoDiff

Both functions calculate the same thing

* Remove GetRangeFromGridNoDiff

* Remove calls to abs()

The values end up being squared anyways making these unnecessary
2023-10-07 15:14:15 +03:00
Asdow 03482ffc3d Merge branch 'master' into ExtraMercs 2023-07-26 13:17:49 +03:00
rftrdevandGitHub fb03cba2fa New feature: transport groups (#172)
https://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=365395
2023-07-04 20:58:56 -07:00
Marco Antonio Jaguaribe CostaandAsdow 8b1c4effa0 nuke all the #if 0's
scripted commit:

find . -not -path '*/.*' -and -not -path '*/ext*' -type d -exec coan source -R -E {} ';'

https://coan2.sourceforge.net/coan_man_1.html
2023-01-19 00:13:08 +02:00
majcostaandGitHub 24425a82b1 More unused stuff removal (#49)
* More unused stuff removal

delete:
- giant 'metaheaders' (JA2 All.h, Laptop All.h, etc), preferring to add #includes directly where needed
- unused ExceptionHandling and DbMan translation units
- unused WizShare.h, Bitmap.h, trle.h, video_private.h headers

* remove mentions from vc proj files too

* remove preprocessor conditionals for unused definitions

find . -iname '*.h' -o -iname '*.cpp' -exec unifdef.exe -m -UPRECOMPILED_HEADERS -UJA2_PRECOMPILED_HEADERS -UWIZ8_PRECOMPILED_HEADERS -UPRECOMPILEDHEADERS {} ';'

then manually fixed a couple files the tool errored out on

* yes, the comments too

as title
2023-01-03 15:51:48 +02:00
Asdow 1f0a8f46e8 Import changes from the local SVN working copy 2022-10-10 10:08:44 +03:00
Sevenfm 082d9838a5 When taking/dropping corpse as object, use object's ubWireNetworkFlag and sRepairThreshold variables to store palette and camo status of corpse, instead of hardcoded flags.
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9240 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2022-01-11 17:52:06 +00:00
Shadooow 99cb5f4e31 fixed corpses on the roof not being added correctly
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9105 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2021-06-25 15:46:46 +00:00
Sevenfm 32482f20f6 New option AI_DECISION_INFO enables extended logging for AI decisions.
Moved zombie AI into separate file ZombieDecideAction.cpp
New zombie AI:
- simplified code
- advancing using cover
- if zombie cannot reach any opponent, he tries to hide
- if zombie cannot reach opponent and cannot hide and he is under fire, he will retreat, seeking cover away from known opponents
- if zombie doesn't know enemy location, he will try to run to closest friend who knows enemy location
- new zombie AI has extended AI logging
More water splash sounds (Data\Sounds\Misc\Splash1.ogg .. SplashN.ogg).
CalcCoverValue: 
- allow moving into shallow water if it provides better position
- special calculations for zombies: zombie is very dangerous at close range
- if soldier has no gun, use different calculation based on distance instead of CTGT
FindBestNearbyCover: zombies only choose spots that provide sight cover.
Added functions for extended AI log.
ClosestReachableDisturbance:
- if soldier is zombie and he cannot climb, skip location
- zombies do not attack vehicles
- improved check to avoid choosing dying opponents
EstimatePathCostToLocation: return 0 if checking for zombie which cannot climb and path needs climbing.
RoamingRange: always max roaming range for zombies.
SightCoverAtSpot, ProneSightCoverAtSpot:
- improved max sight range calculation
- added option for unlimited sight range check
New AI functions:
- AIDirection
- AICheckIsSniper
- AICheckIsMarksman
- AICheckIsMedic
- AICheckIsMortarOperator
- AICheckIsGLOperator
- AICheckIsOfficer
- AICheckIsCommander
- AICheckIsMachinegunner
- AIGunInHandScoped
- AIGunScoped
- AIGunRange
- AIGunClass
- AIGunType
- AIGunDeadliness
- AIGunAmmo
- AIGunAutofireCapable
- FindObstacleNearSpot
- InSmoke
- CorpseWarning
- CorpseEnemyTeam
- CorpseMilitiaTeam
- AICheckUnderground
- AnyCoverAtSpot
- AICheckHasWeaponOfType
- AICheckHasGun
- AICheckShortWeaponRange
GetCorpseAtGridNo: additional check for valid gridno.
More zombie raise sounds (Data\Sounds\Misc\ZombieRaise1.ogg .. ZombieRaiseN.ogg).
GetCorpseRotFactor: improved code to return FLOAT value between 0 and 1.
New debug topic id TOPIC_DECISIONS for logging AI decisions.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8760 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2020-02-21 23:33:25 +00:00
silversurfer a181d7c061 Fix: RaiseZombies function ignored sector levels and modified wrong sector info counters
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8692 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2019-08-24 19:11:26 +00:00
silversurfer e39652f6e2 Feature enhancement: Drop All now allows to use the following settings:
0 = Drop All is off and drop chances are used
1 = Drop All is on and everything is dropped
2 = Mild Drop All which means that everything is dropped (like 1) but items that are usually not dropped (like 0) are severely damaged.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8675 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2019-04-22 11:12:13 +00:00
Flugente a97425a321 Additional dialogue event ADE_ZOMBIESRISE is called when new zombies are created from corpses
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8660 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2019-02-04 20:06:12 +00:00
Flugente 72c9e94cc2 Skinning a bloodcat yields a bloodcat pelt
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8659 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2019-02-04 20:05:12 +00:00
Flugente 2dbacd32de The following options have been moved from the campaign the campaign start screen to JA2_Options.ini:
- Maximum number of IMPs (now MAX_IMP_CHARACTERS (Default: 10))
- Enemies drop all items (now DROP_ALL (Default: FALSE))
- Merc Story Backgrounds (now BACKGROUNDS (Default: TRUE))
- Food System (now FOOD (Default: FALSE))
- Improved Interrupt System (now IMPROVED_INTERRUPT_SYSTEM (Default: TRUE))
- Inventory Manipulation Costs AP (now INVENTORY_MANIPULATION_COSTS_AP (Default: FALSE))

For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23855&goto=354656&#msg_354656

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8610 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2018-09-02 15:14:01 +00:00
Flugente a59b75b0be New feature: we have to bury corpses, or their rot causes diseases in sectors
Requires GameDir >= r2436.

Fopr more info, see http://thepit.ja-galaxy-forum.com/index.php?t=tree&th=23828&goto=354321&#msg_354321

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8591 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2018-08-12 12:42:38 +00:00
Flugente 80674249cc New feature: bloodcat/zombie/bandit raids on player-controlled sectors
For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23711&goto=353154&#msg_353154

Requires GameDir >= r2420

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8554 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2018-04-15 14:42:01 +00:00
Flugente 6031257dcd New feature: mercs can drag people and corpses
Requires GameDir >= r2386.

For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=23508&goto=350989&#msg_350989

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8474 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2017-09-17 22:16:30 +00:00
Flugente 88d60c8df1 Fix: corpses on a roof cannot be interacted with
Note that once a rooftop corpse has been decapitated, it cannot be accessed again, due to as of yet unclear structure handling.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8236 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2016-05-26 11:17:04 +00:00
silversurfer 9388e38956 New parameter in DifficultySettings.xml:
LootStatusModifier defines how much his dropped equipment can get damaged when an opponent dies. This externalizes the hardcoded values that depended on difficulty level.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8056 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2016-02-13 15:20:45 +00:00
Flugente d1e1759aa2 Removed ENABLE_ZOMBIES-define
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8047 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2016-01-31 17:54:51 +00:00
Flugente 811f18009f New ammotype: cryo ammo deals no damage, but freezes a soldier for two turns (stackable effect). A frozen soldier cannot perform actions, and has drastically lowered damage resistance. For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&th=22926&start=0&
Requires GameDir >= r2284.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8034 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2016-01-24 22:54:13 +00:00
Flugente 3ab623e452 Externalised ini values: CORPSE_DELAY_UNTIL_ROTTING and CORPSE_DELAY_UNTIL_DONE_ROTTING control when a corpse rots and vanishes.
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7981 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2015-08-19 20:02:00 +00:00
Flugente 13875810a4 minor code cleanup
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7963 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2015-08-08 09:33:28 +00:00
Flugente 929d15ec8a changed several variable names for body types to 'ubBodyType', as this is more consistent and allows wider use of macros
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7961 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2015-08-07 20:09:10 +00:00
Flugente 7dbff83e24 - Fix: VS2010 debug build issue with reading in StructureConstruct.xml
- replaced a few hardcoded values with enums
- use TANK(...) macro instead of checking for bodytype by hand

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7959 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2015-08-05 19:01:11 +00:00
Flugente b2217eaab9 Deleted Feature: The poison feature has been made obsolete by the disease feature and has been removed.
GameDir >= r2245 is recommended.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7870 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2015-05-20 20:39:51 +00:00
Flugente 8857e0772b - if a a roof collapses, any structures built on it (fans, sandbags) are destroyed
- if a a roof collapses, any corpses on it are moved to the floor

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7623 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-10-31 22:13:32 +00:00
Flugente 5ad522e4a7 - Fix: disease notification should not be visible to the player
- Fix: disease infection happened even though disease feaure was off
- Disease Improvement: infection chance by corpse is now affected by age of corpse

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7486 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-09-04 19:55:56 +00:00
Wanne 684e1d6148 Externalized Difficulty Settings
- Removed #ifdef DIFFICULTY_SETTING. Now the new difficulty settings code is always active (by Jazz)
- Removed unused INI reading settings

These parameters were moved to the file DifficultySettings.xml.
** Ja2_Options.INI **
ENEMY_AP_BONUS_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
NUM_KILLS_PER_PROGRESS_POINT_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
INITIAL_GARRISON_PERCENTAGES_NOVICE  , _EXPERIENCED, _EXPERT, _INSANE
MIN_ENEMY_GROUP_SIZE_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
UNLIMITED_POOL_OF_TROOPS_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
QUEENS_INITIAL_POOL_OF_TROOPS_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
ENEMY_STARTING_ALERT_LEVEL_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
ENEMY_ALERT_DECAY_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
NUM_AWARE_BATTLES_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
BASE_DELAY_IN_MINUTES_BETWEEN_EVALUATIONS_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
EVALUATION_DELAY_VARIANCE_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
GRACE_PERIOD_IN_HOURS_AFTER_SECTOR_LIBERATION_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
GRACE_PERIOD_IN_DAYS_AFTER_PATROL_DESTROYED_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
AGGRESSIVE_QUEEN_AI_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
QUEEN_POOL_INCREMENT_PER_DIFFICULTY_LEVEL
PERCENT_EXTRA_ELITES_EXPERIENCED , _EXPERT, _INSANE
MAX_MERC_DEATHS_EASY , _EXPERIENCED, _EXPERT, _INSANE
		
** Creatures_Settings.INI **
CREATURE_SPREAD_TIME_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
QUEEN_REPRODUCTION_BASE_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
QUEEN_REPRODUCTION_BONUS_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
QUEEN_INIT_BONUS_SPREAD_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
CREATURE_POPULATION_MODIFIER_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
CREATURE_TOWN_AGGRESSIVENESS_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
QUEEN_POOL_INCREMENT_PER_DIFFICULTY_LEVEL
		
** CTHConstants.ini **
BASE_DIFFICULTY_NOVICE , _EXPERIENCED, _EXPERT, _INSANE
AIM_DIFFICULTY_NOVICE , _EXPERIENCED, _EXPERT, _INSANE


git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7461 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-08-31 13:39:23 +00:00
Wanne 344797f6af New Feature: Added up to 15 game difficulty settings (by Jazz)
- Externalized the difficulty setings to "TableData\DifficultySettings.xml" file
- Some INI Settings (ja2_options.ini, CTHConstants.ini and Creature_Settings.ini) moved from INI file to this xml file
- see #define DIFFICULTY_SETTING

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7447 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-08-28 10:30:40 +00:00
Flugente 05cb329230 - Fix: Tanks take damage even when crushing down simple wooden fence. (by anv)
- dynamic opinion events no longer happen for non-player or vehicular characters
- renamed a flag

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7340 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-07-15 21:00:59 +00:00
Wanne fa29d9be26 Merged from revision: 7258
- Translated russian source code comments (by Sevenfm)

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7259 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-06-03 18:13:23 +00:00
Flugente 30060f0595 Merged revision(s) 7166-7177 from branches/ja2_source_official_2014:
- Flagmasks are unsigned, and should be called and treated as such
- Fix: experience gain from interrogation was too high
- Fix: chance of a prisoner becoming militia was calculated wrong
- default weight maximum for MOVE ITEM assignment increased from 30 to 40 kg
- Fix: snitches report the same event multiple times
- Fix: snitches treat vehicles as persons
- Fix: selection of launchables is inefficient, an does not take into account wether items are depending on day/night cycle
- new key combination: in strategic, pressing [CTRL] + [E] wile both a merc's inventory and the sector inventory are open will fill the merc's inventory with sector items
- trivial code cleanup
- if prisoners are taken in a sector that houses a prison, that prison can also be selected to house them
- Fix: distributing newly taken prisoners in a prison sector no longer redistributes all prisoners, only the new ones
- GetClosestFlaggedSoldierID can also be called without evaluation of sight
- Fix: Covert Ops: throwing/lobbing items or shooting rockets is deemed suspicious behaviour
- Fix: boxing was broken by loading a savegame
- Fix: campaign history rarely recorded kills in autoresolve
- There is no reason why the IDs that boxers are reset to before they are reinitialised would ever need to be altered by a modder. Required script change in stable GameDir r2024.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7178 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-04-30 21:36:18 +00:00
Flugente d6186aca15 Merged revision(s) 6826-6828 from branches/ja2_source_official_2014:
- Minor code improvements and cleanup
- Fix from r6775 is no longer necessary.
- Code improvement: Instead of calling inv.size() repeatedly, just call it once and remember that value

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6829 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2014-01-26 12:18:43 +00:00