Commit graph

29 commits

Author SHA1 Message Date
TokyoSU
2ba8257468
Enemy firing system refactor (#1069)
* Refactored gunflash.

- Fixed rendering of gunflash.
- Improved gen.bat with some comment.
- Now entity can shoot with 2 weapon (left and right) like lara.

* Fix compiling error

* Move muzzleFlash to creature struct

- Removed BiteInfo and remplaced it by CreatureBiteInfo.
- Fixed Mafia2 and Cybord muzzleflash pos.
- Added dynamic light and smoke when entity shoot. (only for weapon)

* Able to switch GUN_FLASH mesh.

* Improve CreatureEffect/Effect2

Pass bite directly instead.

* Fixed TR5 and TR4 biteInfo

* Finished implementing gunflash for creatures.

- Fix snowmobile gun crash.
- Fix knifethrower not throwing knife.

* Removed traps cpp/h.

* Update Changes.txt

* Update Changes.txt

* Update effects.cpp

* Fixed build error

* Update setup.cpp

- Removed old ObjectObjects() and TrapObjects() and move the code to TR5 objects.

* Fix mpgun gunflash not playing when dead.

* Fixed snowmobile gun not appearing correctly

- Fixed crash if ID_GUN_FLASH2 not exist  and creature like snomobile driver shoot.
- Fix the snowmobile driver AI that where commented (was disabled to test the gunflash).

* Improved AssignObjectAnimations

* Added new lot for snowmobile gun

- Allow the snowmobile to drop from 4 block !

* Fixed savegame crash

* Change what @Lwmte reviewed.

* Added todo for snowmobile gun.

- reverted NO_JOINT in CreatureBiteInfo causing error when compiling.

* Fix compile error caused by the develop merge

* Minor formatting

* Update people.cpp

---------

Co-authored-by: Sezz <sezzary@outlook.com>
Co-authored-by: Kubsy <80340234+Kubsy@users.noreply.github.com>
2023-04-28 16:52:35 +01:00
Sezz
b5b133911f
Initialize with a z (#1077)
* Initialise -> initialize

* Update new functions

* Fix typo
2023-04-21 10:39:31 +01:00
Sezz
93341ca823
Further split LaraInfo (#1066) 2023-04-12 14:44:13 +01:00
Sezz
9798b2487a
"None" state for creatures (#825)
* Adopt NO_STATE (-1) as empty designator for RequiredState instead of 0; syntax in creature files

* Convert sme TestProbability arguments to fractions

* Syntax for TR4 creatures

* Syntax for TR5 creatures

* Fix thing

* Make angle functions constexpr; move constants; organise includes

* Update Lua input action functions

* Convert angle const to constexpr

* Don't shorten std:: types

* Remove remaining instances of WALL_SIZE

* Remove double semicolons

* Reformat fractions for consistency

* Formatting

* Fix merge errors

* Initialise RequiredState properly

* Merge branch 'develop' into no_state_for_creatures

---------

Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com>
2023-02-05 10:50:30 +00:00
Sezz
a45cb253e8 Move entity Color member to model struct 2022-12-24 22:01:02 +11:00
Sezz
608a951ff2 Use distance calculation method; cleanup 2022-09-19 23:36:14 +10:00
Sezz
817c67bac4 Demagic tr2_silencer.cpp; demagic some probabilities; cleanup 2022-09-03 23:09:12 +10:00
Sezz
deca190af5 Move TR2 creatures into more appropriate namespace 2022-08-21 15:20:13 +10:00
Sezz
e614a3f32e Merge branch 'master' into entity_fix 2022-08-15 00:20:29 +10:00
Sezz
4c8c45cc18 Make remaining BiteInfos const 2022-08-14 21:42:24 +10:00
Sezz
01f0ef2358 Fix reversed conditions 2022-08-14 16:47:05 +10:00
Sezz
d8621af9df Fix syntax errors 2022-08-14 14:58:03 +10:00
Sezz
2e98a2584d Deal with NULLs in creature entity code 2022-08-12 20:29:52 +10:00
Sezz
d7cbce0cdb Store velocities in a Vector3 container 2022-08-10 20:25:00 +10:00
TokyoSU
c0f9755a8e Removed VIOLENT & TIMID constexpr
- Replaced every VIOLENT and TIMID constexpr to bool for each GetCreatureMood() and CreatureMood() function.
2022-08-05 13:33:46 +02:00
Sezz
4bcb2f693e Throw TR2 entity code into a namespace 2022-08-05 00:09:26 +10:00
Sezz
de49a09a79 Reformat BITE_INFO to BiteInfo 2022-08-04 21:02:30 +10:00
Lwmte
a364512d6b Refactors, cleanups and lifting project to W3 (#596)
* Clean up some globals
* Fix endless loop on end level with incorrect index
* Move vehicle init to InitialiseLara
* Upgrade warning level to W2
* Fix some double-float warnings
* Fix more truncation warnings
* Remove more W2 warnings
* Fix incorrect LocationPad assignment
* Convert abandoned Shade field in moveables to Vector4 Color
* Fix some W3 errors
* Upgrade to W3
* Fix some W4 warnings, but not yet upgraded
* Small cleanup
* Apply moveable tint
2022-07-11 19:08:26 +03:00
Lwmte
aded24fa10 Vehicles cleanup before impacts were broken (#575)
* Enhance big gun rotation; vehicle cleanup

* Determine defaults for vehicle info members; keep camera elevation aligned with line of sight on big gun

* Organise constants

* Fix jeep/bike floor tilts

* Unify vehicle height calcs, fix bridges for vehicles

* Fix water vehicles

* Fix typo

* Introduce unified vehicle mounting mechanism and use it for the skidoo

* Ensure vehicle mounting occurs from correct side; modify skidoo and speedboat control inputs

* Update VehicleHelpers.cpp

* Fix kayak

* Standardise vehicle inputs

* Update vehicle acceleration input

* Make vehicle inputs constants

* Rename Airborne to IsAirborne

* Move generic vehicle functions to VehicleHelpers.cpp

* Also move constants

* Remove inaccurate vehicle mount condition

* Move vehicle constants to header; redo quad bike input replacement (further adjustment required)

* Establish vehicle mount constants for later; convert vehicle macros to constants

* Add condition to level start mount

* Organise and demagic some vehicle constants

* More cleanup and demagicking of vehicle constants

* Demagic and simplify UPV garbage

* Organise UPV angle macros and constants to make sense

* Organise a little more

* Final cleanup of UPV constants

* Add temporary vehicle velocity scale constant for easier removal later; demagic rubber boat velocity and turn rate values

* Cleanup, demagicking

* Cleanup

* Organisation

* Prototype vehicle turn rate modulation with skidoo and UPV

* Tentatively simplify UPV turn rate deceleration

* Fix UPV turning

* Tweak UPV turn rate macros

* Tweak UPV turn rate macros

* Complete vehicle mount function

* Use new vehicle mount function with quad bike

* Use new vehicle mount function with motorbike

* Add oneshot check to GetVehicleMountType()

* Prepare mechanism to allow starting a level already mounted on any vehicle

* Fix typo

* Cleanup and organisation

* Remove use of Lara global

* Use new vehicle mount function with minecart

* Fix spike deaths on vehicles

* Use new vehicle mount function with jeep

* Assess 2D distance for vehicle mounts instead of 3D for better fidelity around steps

* Cleanup

* Use new vehicle mount function with speedboat

* Fix mounts on boats

* Use new vehicle mount function with rubber boat

* Use new vehicle mount function with kayak

* Cleanup

* Use new mount function with UPV

* Fix motorbike nitro and remove useless flag checks

* Fix bike nitro, rotate wheels for vehicles

* Fix ItemPushStatic not to corrupt non-Lara items room number

* Remove unneeded clamps

* Fix typo

* Jeep: comply to tomb4 decompilation order

* Uncomment drift code for jeep, rename unknown2 to Gear

* Fix flag meanings

* Further backport of jeep from tomb4 project

* Use JeepBrakeLightJoints

* Update jeep.cpp

* Fix vehicle static collisions

* Add disabled option to insert nitro into motorbike

* Simplify UPV collision check

* Update comment

* Make vehicle function parameter ordering consistent

* Rotate UPV rudders when turning the vehicle

* Lean UPV when turning

* Simplify condition

* Simplify skidoo turn rate modulation

* Fix UPV turbine rotation

* Fix merge error

* Tentatively invert turning when moving in reverse on skidoo

* Add function to discard flares on vehicles to avoid copy-paste

* Add big reminder comment for savegames

* Fix another "epic" typo by me, convert enum hex values to shifts

* lara_struct.h cleanup

* UPV cleanup

* #include cleanup in vehicle headers

* Also brake quadbike with brake button

Co-authored-by: Sezz <seb.zych@outlook.com>
2022-07-02 21:12:40 +03:00
Lwmte
230dac03ca Remove some extremely old comments, rename function for consistency 2022-06-27 22:35:29 +03:00
Lwmte
12663c7ce2 OIS input system (#556)
* Work

* Add ois.lib

* Add OIS headers/libs to project

* Fix small mistakes

* Update input.cpp

* Update input.cpp

* Update input.cpp

* Remove unnecessary event handlers as we are using direct polling

* Fix numpad controls not polling

* Enclose all input code under namespace, provide debug OIS lib variation

* Fix incorrect inventory call binding, add pause to control dialog

* Deselect by pushing inventory button as well, fix crossbow ammo string draw

* Demagic NUM_CONTROLS

* Verbose input init logging

* Calibrate and properly register movement analog axis input

* Fix crash when empty string is being displayed

* Initialize vibration interface, if it exists

* Register keyboard directional input as analog axis input as well

* Fix statistics exiting

* Fix weird UpdateInput call

* Copy current layout to configuration

* Fix issues with saving controls

* Register axis values for POVs too

* Register several POV directions at once

* Increase deadzone a bit

* Simplify enums

* Update input.cpp

* Move includes out of input.h

* Bump deadzone even further as it seems xbox controllers have massive axis errors

* Prevent event spamming in case OIS polling failed

* Destroy input system on exit, cosmetic changes

* Take deadzone into account when normalizing axis values

* Update TombEngine.vcxproj

* Resolve small precision loss in axis normalizing

* Clean up unused control constants and enums

* Update input.h

* Demagic InputActions enum

* Render pause menu header

* Introduce helper functions to modulate Lara turn rates and begin replacements

* Make turn directions explicit

* Conduct remaining replacements of turn rate modulations

* Update lara_helpers.cpp

* Add smoothstep function to math library

* Use scaled axis value for true analog input

* Update input.cpp

* Add Joey's camera rotation from old branch

* Fix camera not going back to previous position when stick is released

* Simplify ModulateLaraTurnRate()

* Widen look angle

* Avoid collisions with actions bound to non-directional axis

* Small tidying

* Remove unused header

* Remove copypasted code

* Mask flare animation

* Rename 5th and 6th axis to LT/RT

* Prototype force feedback support

* Add directional rumble support (probably XInput-only)

* Shake controller on startup if supports vibration

* Update OIS libs to support XInput FF

* Simplify ModulateLaraTurnRate()

* Update player modulation functions; simplify turning, leaning, and flexing in state functions; lara.h cleanup

* Update Win32ForceFeedback.h

* Fix crawl flex function

* Revert "Update Win32ForceFeedback.h"

This reverts commit aa7099ed5b.

* Update OIS libs

* Add options for thumbstick camera and vibration

* Make use of autotarget option

* Display NON-SCREAMING names in controls, add hack to cancel axis value on both right+left input events

* Remove useless control hacks for simultaneous directional input

* Delete ten_itemdata_generated.h

* Add scroll lock to bindable controls

* Update input.cpp

* Update input.cpp

* Make input device namings consistent

* Bring back IN_SELECT override

* Fix crashing on startup and some other bugs

* Add rumble to some in-game events

* Add some more vibration events, stop them when going to menus

* Some changes to rumble power

* Add rumble for rocket/grenade launchers and explosive damage

* Add rumble for screen shake effect

* Fix 2 mistakes in inventory strings

* Rumble for camera more precisely

* Fix debounce in binocular mode

* Update camera.cpp

* Add HK lasersight rumble

* Simplify ModulateLaraLean()

* Update input.cpp

* Fix crawl flex modulation(?)

* Add slight rumble to harpoon and crossbow fire

* Remove the confusing counteracting turn rate reset in favour of something simpler

* Simplify turn rate reset input checks; leanup

* Clamp turn rate axis coeff when airborne

* Remove empty line

* Simplify a function

* Cleanup

* Fix rumble being constant

* Use shorter rumble time for shooting guns

* Fix single arm shooting

* Fix leaning left with joystick; clamp crawl flex max; tweak walk lean max; cleanup

* Don't do too long splat and jump smash vibrations

* Cancel turn rate when exiting water, grabbing ledge, or doing a splat

* Rename function

* Move ModulateLaraTurnRateY() callsin crawl and crouch turn states

* Reset turn rate when performing crawl vault

* Convert all health decrease events to DoDamage calls

* Remove SpasmEffectCount and unify touching with DoDamage

* Give specific time delay before sprint jump is possible

* Don't rumble on zero damage

* Reorder input pipeline to prevent left+right collisions

* Rename shady global

* Rumble when breaking neck in swandive

* Update lara_jump.cpp

* Don't vibrate on soft splat

* Fix combine item text alignment

* Vibrate in settings only if setting was changed

* Pulse gamepad on critical health condition

* Don't get out of water into objects

* Add critical air constant

Co-authored-by: Sezz
2022-06-25 23:53:58 +10:00
Lwmte
dd5e22e975 Squashed commit of the following:
Adjusted Vehicle Impact to match XMLS and .wav files
    Fix enumerations in the historical context
2022-06-07 14:52:18 +03:00
Stranger1992
55f329282a Updated Sound_effects.h to the final sound names.
Added 128 custom sound slots.
Overkill but stop any UWU

And any changed Sound enums. Final commit....
2022-06-06 01:11:40 +01:00
Lwmte
3990bc51e8 Massive sound cleanup, fixing a lot of vehicle sounds 2022-05-29 21:06:40 +03:00
Lwmte
bd5010b26a Clean up and demagic SoundEffect calls 2022-05-29 16:34:09 +03:00
Lwmte
29f433e7f9 Demagic NOT_TARGETABLE 2022-05-24 04:37:03 +03:00
Sezz
546ab522ca Rename baddie back to baddy 2022-05-14 13:45:21 +10:00
MontyTRC89
9a6d464c5a Merge branch 'solution_refactoring' into ten_beta 2022-05-10 06:36:25 +02:00
MontyTRC89
f1e7c6fbfc All files under the same project; Renamed TR5Main to TombEngine; Cleaned repository; 2022-05-08 06:52:04 +02:00
Renamed from TR5Main/Objects/TR2/Entity/tr2_skidman.cpp (Browse further)