Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
a413982
First pass cleanup of Attachable header and cpp. Some TODOs to deal w…
garethyr Aug 5, 2020
5361c54
Added Attachable member variables for transferring damage to parent a…
garethyr Aug 6, 2020
c0ed2f4
Cleaned up Attachable handling so all attachables sit in one list, ad…
garethyr Aug 11, 2020
2d9d0e1
Added setters for hardcoded attachables to ACrab and used them during…
garethyr Aug 11, 2020
bebf083
Added setters for hardcoded attachables to ACDropShip and used them d…
garethyr Aug 11, 2020
ee1d235
Reworked up wound checking and removal. Now it's all handled by MOSR …
garethyr Aug 11, 2020
cf5f426
Followup to c0ed2f4 forgot to include damage multiplier handling for …
garethyr Aug 11, 2020
be5bf22
Followup to ee1d235, removed RemoveWounds override from Attachable si…
garethyr Aug 11, 2020
652c265
Followup to 5361c54 fixed leftover Attach and Detach in HDFirearm, Se…
garethyr Aug 11, 2020
66012e7
A couple random commits - fixing readability on error when sound is f…
garethyr Aug 11, 2020
6b51cad
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Aug 13, 2020
177066e
Removed accidentally skipped old GetJetpack comment in ACrab.h
garethyr Aug 13, 2020
63fe5d6
Removed accidentally skipped GetTotalWoundCount and GetTotalWoundLimi…
garethyr Aug 14, 2020
2d4998a
Followup to 63fe5d6, added missing setter for SetMainThruster
garethyr Aug 14, 2020
9850343
Added setter for ADoor door Attachable and used it in Create. Added l…
garethyr Aug 15, 2020
d7383b6
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Aug 17, 2020
356919a
Cleaned up hardcoded attachable getters for AHuman and added setters …
garethyr Aug 17, 2020
63b17a2
.
garethyr Aug 18, 2020
ed056e0
Added safety check to Attachable::OrganizeAtomsInParent and made memb…
garethyr Aug 18, 2020
23e350a
Forgot to stage the header last commit
garethyr Aug 18, 2020
16c5c50
Added lua setter binding for HDFirearm magazine that I'd forgotten to…
garethyr Aug 18, 2020
6a918a5
Added and used Setter for Arm heldMO. There was already one, but it t…
garethyr Aug 18, 2020
a01bebd
Added setter in leg for foot and used it
garethyr Aug 18, 2020
3ec4d50
Cleaned up Magazine Create, fixed MOSR CloneHardcodedAttachable templ…
garethyr Aug 18, 2020
ace8632
Cleaned up variable names, use of attach and detach, deletion of atta…
garethyr Aug 18, 2020
55e42dc
Fixed copy paste screwup in ACrab
garethyr Aug 19, 2020
2be90ce
Fixed add attachable during read property on AEmitter, Arm, Leg, Turr…
garethyr Aug 22, 2020
3deb98b
Cleanup Turret - fix and clean methods, reorganize, change MountedMO …
garethyr Aug 22, 2020
59f710f
Prepped to have MOSR handle attachable behaviour in GetMass, SetID, G…
garethyr Aug 23, 2020
3599697
Cleaned up turret use of mosr handled methods
garethyr Aug 23, 2020
bb16512
Cleaned up Leg and renamed various methods, updated rocket, human and…
garethyr Sep 7, 2020
b5f9c57
Added Attachable flag for whether the attachable should be drawn norm…
garethyr Sep 8, 2020
c9b81ff
Cleaned up no longer needed methods in ACDropship, ACRocket, ACrab, a…
garethyr Sep 8, 2020
e0a3299
Cleaned up uneeded methods from ACraft, ADoor, Arm
garethyr Sep 8, 2020
c081be2
Added setter for DrawnAfterParent and fixed a bit of comments in Atta…
garethyr Sep 8, 2020
fcc7515
Finished work on Leg - solved all TODOs, fixed bugs, cleaned up code,…
garethyr Sep 8, 2020
37c3a51
Added ClampMagnitude method to Vector that does what it says on the box
garethyr Sep 8, 2020
f3635b7
Changed GibThis to use a const Vector reference for impactImpulse
garethyr Sep 9, 2020
b636b3b
Forgot to commit these just now, changed GibThis implementers to use …
garethyr Sep 9, 2020
edd26aa
Removed TransfersDamageToParent from Attachable, just using MOSRotati…
garethyr Sep 11, 2020
583b4aa
Cleaned up ACrab and AHuman damage handling and Attachable updating s…
garethyr Sep 11, 2020
4f44c8b
Cleaned up ACRocket and ACDropship attachable updating, damage transf…
garethyr Sep 11, 2020
a31288e
Fixed lua bindings to use appropriate policies for setters and getter…
garethyr Sep 11, 2020
ec47823
A bit of cleanup on Turret to match up with jointpos changes and rena…
garethyr Sep 11, 2020
0301396
Made ADoor, AEmitter, Arm and HDFirearm work with new attachable hand…
garethyr Sep 15, 2020
feb480d
Renamed DeleteWithParent to DeleteWhenRemovedFromParent since this mo…
garethyr Sep 15, 2020
cdb0f76
Made MovableMan::AddMO also add Items if the MO is a held device, cha…
garethyr Sep 15, 2020
92c4022
Changed hardcoded attachable handling to put lambda functions in a ma…
garethyr Sep 16, 2020
970dbcd
Added Attachable InheritedRotAngleOffset property, added INI setters …
garethyr Sep 16, 2020
ec2f526
Renamed OnlyLinearForces to ApplyTransferredForcesAtOffset and revers…
garethyr Sep 17, 2020
5f3f37f
Added new MOSRotating property for affecting gibbing - GibBlast Strength
garethyr Sep 19, 2020
eaedcc1
Used new Attachable and MOSRotating properties to simplify gibbing an…
garethyr Sep 19, 2020
0649a55
Deleted GibThis method in ACrab, AHuman, ACRocket, ACDropship,
garethyr Sep 19, 2020
45b0f85
Fixed DegreesToRadians and RadiansToDegrees so they're defined in the…
garethyr Sep 19, 2020
c542902
Fixed a little bug in ADoor and removed a TODO that seems fine
garethyr Sep 19, 2020
25cfb70
Added handling to fix draw order problems in ACrab and AHuman. Also s…
garethyr Sep 19, 2020
010b2ca
Added some reasonable checks before organizing atoms in parents for a…
garethyr Sep 20, 2020
3c09e79
Changed (once again) how hardcoded attachable setup is done, so that …
garethyr Sep 20, 2020
d5000a1
Fixed a longstanding bug wherein forces transferred from Attachables …
garethyr Sep 20, 2020
bb6f4cb
Added GripStrength property to Arm and GripStrengthMultiplier propert…
garethyr Sep 21, 2020
78d004b
Cleaned up AG Drawing in Draw so MOSR Draw does it automatically for …
garethyr Sep 29, 2020
9957507
Missed a section
garethyr Sep 29, 2020
cda75d3
Cleaned up recoil handling from HDs so it works better. It's hard to …
garethyr Sep 29, 2020
b3acae0
Fixed Attachable terrain collision handling so it properly adds atoms…
garethyr Oct 6, 2020
adb49e4
Made GetMass more efficient for MOSRs. Instead of having to get each …
garethyr Oct 6, 2020
0267459
Added override methods for overloads of add and remove Attachable and…
garethyr Oct 6, 2020
786d02f
Chucking in a TODO and an experimental Assert. I think the assert mig…
garethyr Oct 6, 2020
4852c33
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Oct 6, 2020
b08c1b1
Sneaking in a couple little code quality improvements - AEmitter read…
garethyr Oct 6, 2020
acee2fe
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Oct 6, 2020
11129a9
Cleaned up some comments, added ini support in ACrab for spelled out …
garethyr Oct 6, 2020
1293696
Updated changelog with a myriad of things
garethyr Oct 6, 2020
7e76490
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Oct 7, 2020
16717f9
Added limit to healing from attachables with negative damage multipli…
garethyr Oct 19, 2020
70c8739
Whoops, changed order of min call with healing and forgot to stage it
garethyr Oct 19, 2020
b85bbd0
PR review
garethyr Oct 19, 2020
4ce5a2a
Review comments
garethyr Oct 23, 2020
7516d8d
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Oct 23, 2020
34ff1fe
Added necessary AtomGroup changes to make everything work.
garethyr Oct 23, 2020
108f7fc
Oops
garethyr Oct 23, 2020
5b8f240
"Fixed" always triggering abort when removing attachable (commented i…
garethyr Oct 23, 2020
b679e35
Fixed crashes and potential crashes
garethyr Oct 23, 2020
ca8399e
Turns out setting hardcoded attachables wasn't broken at all, I just …
garethyr Oct 23, 2020
5b31253
Removed extra MovableMan AddItem calls in Arm
garethyr Oct 24, 2020
e4bc466
Added safe handling to HDFirearm so there's no potential memory leaks…
garethyr Oct 24, 2020
fe0a464
Review Comments
garethyr Oct 25, 2020
cd7b852
Review Changes
garethyr Oct 26, 2020
fe85e83
Renamed wordy includeAttachablesWithAXDamageMultiplier to the slightl…
garethyr Oct 26, 2020
1db9cd8
Changed ContainsSubGroup to long instead of long int, and made it const
garethyr Oct 26, 2020
097c7c6
Fixed build problems - forgot to return in ACrab, had to un-const som…
garethyr Oct 26, 2020
94e84e3
Review Comments
garethyr Nov 1, 2020
71976ac
Added pickup limitation handling to HeldDevice
garethyr Nov 1, 2020
2c0fe51
Added GetIndividualMass and GetInventoryMass to MOSR and Actor
garethyr Nov 2, 2020
f352a48
Added const for no pickups and used it to fix a dumb bug I made
garethyr Nov 4, 2020
1126c38
Review comments (sort of), pulled some simpler update stuff that had …
garethyr Nov 5, 2020
5a067c3
Fixed emitters being way too strong. Turns out I was an absolute dumdum
garethyr Nov 5, 2020
dbb8635
Review Comment
garethyr Nov 7, 2020
f6d1259
Review comments - replaced INI NoActorsCanPickThisUp with adding an a…
garethyr Nov 7, 2020
503b5e8
Changed variable name (and comments) for TransferJointImpulses in Att…
garethyr Nov 7, 2020
310a57b
Fixed a couple screwups with gib generation (thanks 4zK)
garethyr Nov 13, 2020
248d770
PR Review Comments and Discussion
garethyr Nov 13, 2020
53da816
PR review changes
garethyr Nov 13, 2020
7fdaf52
Whoops, fixed a li'l crash
garethyr Nov 13, 2020
f860deb
Changed nonpickupable to use a boolean so it doesn't weirdly crash (s…
garethyr Nov 13, 2020
a5db25f
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Nov 13, 2020
fed49f3
Swap InheritsHFlip to be -1 for reverse instead of 2 and modified cha…
garethyr Nov 21, 2020
b4c7a71
Moved FacingAngle from Actor to MOSprite so it can be used more widely
garethyr Nov 21, 2020
ad6c605
Sort of fixed attachable atom group updating so it'll happen whenever…
garethyr Nov 21, 2020
2f4101c
LuaMan and changelog FacingAngle update
garethyr Nov 21, 2020
8b77621
Added flipping when determining atomOffsetForSubgroup in Attachable, …
garethyr Nov 23, 2020
29f071a
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Nov 26, 2020
201ab7f
Review comment - moved RemovePickupableByPresetName into cpp file and…
garethyr Nov 26, 2020
0a00c14
Fixed atom subgroup rotation problems, they should rotate properly no…
garethyr Dec 3, 2020
4f50af2
Fixed forces removing/gibbing attachables too easily
garethyr Dec 4, 2020
47611e6
Changelog update
garethyr Dec 4, 2020
6f9b6c4
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Dec 9, 2020
03c9d73
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Dec 10, 2020
a3c54c2
Made parent breakwound not automatically copy breakwound to fix weird…
garethyr Jan 19, 2021
667bba8
Update CHANGELOG.md
garethyr Jan 19, 2021
a764312
Added and used method to get impulses on an object. Also made AddImpu…
garethyr Jan 21, 2021
b207c5e
Made wounds never collide with terrain while attached
garethyr Jan 21, 2021
de87115
Undid changelog changes in branch to make for easier merge
garethyr Jan 22, 2021
1aea400
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Jan 22, 2021
6891880
Readded changelog updates
garethyr Jan 22, 2021
13734c3
Fix previous changelog change a bit so the line I moved is correctly …
garethyr Jan 22, 2021
fee4e17
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Jan 25, 2021
8b0125b
Partially cleaned up Arm.h, and renamed a bit of stuff, also broke up…
garethyr Jan 26, 2021
5515286
Flash didn't get flipped in the past to save on drawing resources or …
garethyr Jan 30, 2021
34ceb45
Probably fix guns' bullets hitting their parents when said guns get k…
garethyr Jan 30, 2021
779b7ae
Minor cleanup in Arm heldMO handling
garethyr Feb 1, 2021
2e53b3c
made it so particle wound damage multiplier actually multiplies wound…
garethyr Feb 1, 2021
c35f449
Fix damage multiplier setting on wounds so it works properly in colli…
garethyr Feb 1, 2021
ac592bf
Quick test to see if this fixes wound flipping?
garethyr Feb 1, 2021
7920111
Make actor damage multiplier default to 1 so people don't have to add…
garethyr Feb 1, 2021
decda47
Added LimbPath EndSegCount that defines that count beyond which the c…
garethyr Feb 1, 2021
63265a3
Fiddle with limbpath endsegcount so it counts back from the end for c…
garethyr Feb 2, 2021
fa54a05
Changes to hopefully make limbpath endsegcount work better
garethyr Feb 2, 2021
c9f347b
Added AHuman INI property CrouchLimbPathBG
garethyr Feb 3, 2021
5253262
Cleaned up ACrab backup footgroup handling to match AHuman's and twea…
garethyr Feb 3, 2021
c8e5f73
Added GetLimbPath for ACrab and added names for Side and Layer enums
garethyr Feb 3, 2021
fc06ae7
Added unique rotation target for when crouching but still
fourZK Feb 3, 2021
7707f0f
Add AHuman m_RotAngleTargets for setting desired rot angles for diffe…
garethyr Feb 5, 2021
0b6b6b9
Fixed mass handling so changing mass on attachables of attachables wi…
garethyr Feb 5, 2021
bb7e740
Made Turret MountedMO always draw at the end if it's set to draw afte…
garethyr Feb 5, 2021
f3d6c2d
Fixed Arm update so TDs aren't wonky. Also clean up some logic so it'…
garethyr Feb 6, 2021
6cde16b
Renamed DamageMultiplierSetInIni to HasNoSetDamageMultiplier, and rev…
garethyr Feb 6, 2021
a79a06f
Fixed AHuman FGArm not drawing white.
garethyr Feb 6, 2021
89044b0
Changed MOSprite Radius to SpriteRadius to clearly distinguish betwee…
garethyr Feb 7, 2021
d2ad89b
Merge branch 'development' into cf-143-refactor-remove-any-random-wounds
garethyr Feb 7, 2021
ce5491b
Update changelog with most recent set of work
garethyr Feb 7, 2021
5cfafdd
Make ahuman head draw after other attachables if set to draw after pa…
garethyr Feb 7, 2021
befe0e9
Attachables that are set to delete will apply breakwounds to their pa…
garethyr Feb 8, 2021
cc93d8b
Fixed radius handling edge cases
garethyr Feb 9, 2021
3ecaf73
Added angular vel cleaning for arms, legs and dropship engines when a…
garethyr Feb 9, 2021
4a3e625
Fix some edge case bugs in radius handling by re-simplifying parent o…
garethyr Feb 10, 2021
1088fb1
Fixed wounds being included in radius due by adding and using a stopg…
garethyr Feb 11, 2021
782a1de
Cleanup some junk comments as requested in review. Oneline something …
garethyr Feb 15, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 146 additions & 2 deletions CHANGELOG.md

Large diffs are not rendered by default.

669 changes: 198 additions & 471 deletions Entities/ACDropShip.cpp

Large diffs are not rendered by default.

244 changes: 72 additions & 172 deletions Entities/ACDropShip.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,17 +109,6 @@ ClassInfoGetters
void Destroy(bool notInherited = false) override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetMass
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the mass value of this ACDropShip, including the mass of its
// currently attached body parts and inventory.
// Arguments: None.
// Return value: A float describing the mass value in Kilograms (kg).

float GetMass() const override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetAltitude
//////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -143,17 +132,6 @@ ClassInfoGetters
MOID DetectObstacle(float distance);


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: SetID
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Sets the MOID of this MovableObject for this frame.
// Arguments: A moid specifying the MOID that this MovableObject is
// assigned for this frame.
// Return value: None.

void SetID(const MOID newID) override;


//////////////////////////////////////////////////////////////////////////////////////////
// Method: AutoStabilizing
//////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -165,30 +143,6 @@ ClassInfoGetters
bool AutoStabilizing() override { return true; }


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GibThis
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gibs this, effectively destroying it and creating multiple gibs or
// pieces in its place.
// Arguments: The impulse (kg * m/s) of the impact causing the gibbing to happen.
// The internal blast impulse which will push the gibs away from the center.
// A pointer to an MO which the gibs shuold not be colliding with!
// Return value: None.

void GibThis(Vector impactImpulse = Vector(), float internalBlast = 10, MovableObject *pIgnoreMO = 0) override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: IsOnScenePoint
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Indicates whether this' current graphical representation overlaps
// a point in absolute scene coordinates.
// Arguments: The point in absolute scene coordinates.
// Return value: Whether this' graphical rep overlaps the scene point.

bool IsOnScenePoint(Vector &scenePoint) const override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: UpdateAI
//////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -210,21 +164,6 @@ ClassInfoGetters
void Update() override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: Draw
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Draws this ACDropShip's current graphical representation to a
// BITMAP of choice.
// Arguments: A pointer to a BITMAP to draw on.
// The absolute position of the target bitmap's upper left corner in the Scene.
// In which mode to draw in. See the DrawMode enumeration for the modes.
// Whether to not draw any extra 'ghost' items of this MovableObject,
// indicator arrows or hovering HUD text and so on.
// Return value: None.

void Draw(BITMAP *pTargetBitmap, const Vector &targetPos = Vector(), DrawMode mode = g_DrawColor, bool onlyPhysical = false) const override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetMaxPassengers
//////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -237,64 +176,77 @@ ClassInfoGetters
int GetMaxPassengers() const override { return m_MaxPassengers > -1 ? m_MaxPassengers : 4; }


//////////////////////////////////////////////////////////////////////////////////////////
// Method: GetRThruster
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the right side engine.
// Arguments: None.
// Return value: An AEmitter pointer.

AEmitter * GetRThruster() const { return m_pRThruster; }


//////////////////////////////////////////////////////////////////////////////////////////
// Method: GetLThruster
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the left side engine.
// Arguments: None.
// Return value: An AEmitter pointer.

AEmitter * GetLThruster() const { return m_pLThruster; }


//////////////////////////////////////////////////////////////////////////////////////////
// Method: GetURThruster
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the right side secondary thruster.
// Arguments: None.
// Return value: An AEmitter pointer.

AEmitter * GetURThruster() const { return m_pURThruster; }


//////////////////////////////////////////////////////////////////////////////////////////
// Method: GetULThruster
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the left side secondary thruster.
// Arguments: None.
// Return value: An AEmitter pointer.

AEmitter * GetULThruster() const { return m_pULThruster; }


//////////////////////////////////////////////////////////////////////////////////////////
// Method: GetLHatch
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the left side hatch.
// Arguments: None.
// Return value: An Attachable pointer.

Attachable * GetLHatch() const { return m_pLHatch; }


//////////////////////////////////////////////////////////////////////////////////////////
// Method: GetRHatch
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Gets the right side hatch.
// Arguments: None.
// Return value: An Attachable pointer.

Attachable * GetRHatch() const { return m_pRHatch; }
/// <summary>
/// Gets the right side thruster of this ACDropship.
/// </summary>
/// <returns>A pointer to the right side thruster of this ACDropship. Ownership is NOT transferred.</returns>
AEmitter * GetRightThruster() const { return m_pRThruster; }

/// <summary>
/// Sets the right side thruster for this ACDropship.
/// </summary>
/// <param name="newThruster">The new thruster to use.</param>
void SetRightThruster(AEmitter *newThruster);

/// <summary>
/// Gets the left side thruster of this ACDropship.
/// </summary>
/// <returns>A pointer to the left side thruster of this ACDropship. Ownership is NOT transferred.</returns>
AEmitter * GetLeftThruster() const { return m_pLThruster; }

/// <summary>
/// Sets the left side thruster for this ACDropship.
/// </summary>
/// <param name="newThruster">The new thruster to use.</param>
void SetLeftThruster(AEmitter *newThruster);

/// <summary>
/// Gets the right side secondary thruster of this ACDropship.
/// </summary>
/// <returns>A pointer to the right side secondary thruster of this ACDropship. Ownership is NOT transferred.</returns>
AEmitter * GetURightThruster() const { return m_pURThruster; }

/// <summary>
/// Sets the right side secondary thruster for this ACDropship.
/// </summary>
/// <param name="newThruster">The new thruster to use.</param>
void SetURightThruster(AEmitter *newThruster);

/// <summary>
/// Gets the left side secondary thruster of this ACDropship.
/// </summary>
/// <returns>A pointer to the left side secondary thruster of this ACDropship. Ownership is NOT transferred.</returns>
AEmitter * GetULeftThruster() const { return m_pULThruster; }

/// <summary>
/// Sets the left side secondary thruster for this ACDropship.
/// </summary>
/// <param name="newThruster">The new thruster to use.</param>
void SetULeftThruster(AEmitter *newThruster);

/// <summary>
/// Gets the left side hatch of this ACDropship.
/// </summary>
/// <returns>A pointer to the left side hatch of this ACDropship. Ownership is NOT transferred.</returns>
Attachable * GetLeftHatch() const { return m_pLHatch; }

/// <summary>
/// Sets the left side hatch for this ACDropship.
/// </summary>
/// <param name="newHatch">The new hatch to use.</param>
void SetLeftHatch(Attachable *newHatch);

/// <summary>
/// Gets the right side hatch of this ACDropship.
/// </summary>
/// <returns>A pointer to the right side hatch of this ACDropship. Ownership is NOT transferred.</returns>
Attachable * GetRightHatch() const { return m_pRHatch; }

/// <summary>
/// Sets the right side hatch for this ACDropship.
/// </summary>
/// <param name="newHatch">The new hatch to use.</param>
void SetRightHatch(Attachable *newHatch);


//////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -308,45 +260,6 @@ ClassInfoGetters
void ResetEmissionTimers() override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetTotalWoundCount
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Returns total wound count of this actor and all vital attachables.
// Arguments: None.
// Return value: Returns total number of wounds of this actor.

int GetTotalWoundCount() const override;

//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetTotalWoundLimit
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Returns total wound limit of this actor and all vital attachables.
// Arguments: None.
// Return value: Returns total wound limit of this actor.

int GetTotalWoundLimit() const override;


//////////////////////////////////////////////////////////////////////////////////////////
// Method: RemoveAnyRandomWounds
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Removes a specified amount of wounds from the actor and all standard attachables.
// Arguments: Amount of wounds to remove.
// Return value: Damage taken from removed wounds.

int RemoveAnyRandomWounds(int amount) override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetMOIDs
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Puts all MOIDs associated with this MO and all it's descendants into MOIDs vector
// Arguments: Vector to store MOIDs
// Return value: None.

void GetMOIDs(std::vector<MOID> &MOIDs) const override;


//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: GetMaxEngineAngle
//////////////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -402,26 +315,13 @@ ClassInfoGetters

protected:

//////////////////////////////////////////////////////////////////////////////////////////
// Virtual method: UpdateChildMOIDs
//////////////////////////////////////////////////////////////////////////////////////////
// Description: Makes this MO register itself and all its attached children in the
// MOID register and get ID:s for itself and its children for this frame.
// Arguments: The MOID index to register itself and its children in.
// The MOID of the root MO of this MO, ie the highest parent of this MO.
// 0 means that this MO is the root, ie it is owned by MovableMan.
// Whether this MO should make a new MOID to use for itself, or to use
// the same as the last one in the index (presumably its parent),
// Return value: None.

void UpdateChildMOIDs(std::vector<MovableObject *> &MOIDIndex, MOID rootMOID = g_NoMOID, bool makeNewMOID = true) override;


// Member variables
static Entity::ClassInfo m_sClass;
// Body AtomGroups.
AtomGroup *m_pBodyAG;
// Thruster emitters.
//TODO when this class is cleaned up, these and their getters and setters should probably be renamed (I'd argue the lua bindings should be broken to match but that's debatable). L and R should be Left and Right and they should probably be Primary and Secondary.
AEmitter *m_pRThruster;
AEmitter *m_pLThruster;
AEmitter *m_pURThruster;
Expand Down
Loading