Skip to content
This repository was archived by the owner on Jul 23, 2020. It is now read-only.

Commit 1b3856f

Browse files
committed
Changes required in preparation for Event code merge.
1 parent 713c536 commit 1b3856f

26 files changed

+562
-325
lines changed

src/game/engine/cargo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ FootClass *CargoClass::Detach_Object()
8383
void CargoClass::Code_Pointers()
8484
{
8585
if (m_Object != nullptr) {
86-
m_Object = reinterpret_cast<FootClass *>(As_Target(m_Object));
86+
m_Object = reinterpret_cast<FootClass *>(m_Object->As_Target());
8787
}
8888
}
8989

src/game/engine/cell.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1044,39 +1044,39 @@ void CellClass::Wall_Update()
10441044
adjcell.m_OverlayFrame = 0;
10451045
adjcell.m_Overlay = OVERLAY_NONE;
10461046
adjcell.m_OwnerHouse = HOUSES_NONE; // C&C DOS sets this, bug fix perhaps?
1047-
Detach_This_From_All(As_Target(adjcell.m_CellNumber));
1047+
Detach_This_From_All(As_Target());
10481048
}
10491049

10501050
// Frame 16 for SBAG is after the nondamaged set
10511051
if (adjcell.m_Overlay == OVERLAY_SANDBAG && adjcell.m_OverlayFrame == 16) {
10521052
adjcell.m_OverlayFrame = 0;
10531053
adjcell.m_Overlay = OVERLAY_NONE;
10541054
adjcell.m_OwnerHouse = HOUSES_NONE;
1055-
Detach_This_From_All(As_Target(adjcell.m_CellNumber));
1055+
Detach_This_From_All(As_Target());
10561056
}
10571057

10581058
// Frame 32 for CYCL is after the first damage state set
10591059
if (adjcell.m_Overlay == OVERLAY_CYCLONE_FENCE && adjcell.m_OverlayFrame == 32) {
10601060
adjcell.m_OverlayFrame = 0;
10611061
adjcell.m_Overlay = OVERLAY_NONE;
10621062
adjcell.m_OwnerHouse = HOUSES_NONE;
1063-
Detach_This_From_All(As_Target(adjcell.m_CellNumber));
1063+
Detach_This_From_All(As_Target());
10641064
}
10651065

10661066
// Frame 16 for FENC is after the nondamaged set, on a 0 basis frame 32 doesn't exist, some hack for older art?
10671067
if (adjcell.m_Overlay == OVERLAY_FENCE && (adjcell.m_OverlayFrame == 16 || adjcell.m_OverlayFrame == 32)) {
10681068
adjcell.m_OverlayFrame = 0;
10691069
adjcell.m_Overlay = OVERLAY_NONE;
10701070
adjcell.m_OwnerHouse = HOUSES_NONE;
1071-
Detach_This_From_All(As_Target(adjcell.m_CellNumber));
1071+
Detach_This_From_All(As_Target());
10721072
}
10731073

10741074
// Frame 16 for SBAG is after the nondamaged set
10751075
if (adjcell.m_Overlay == OVERLAY_BARB_WIRE && adjcell.m_OverlayFrame == 16) {
10761076
adjcell.m_OverlayFrame = 0;
10771077
adjcell.m_Overlay = OVERLAY_NONE;
10781078
adjcell.m_OwnerHouse = HOUSES_NONE;
1079-
Detach_This_From_All(As_Target(adjcell.m_CellNumber));
1079+
Detach_This_From_All(As_Target());
10801080
}
10811081

10821082
adjcell.Recalc_Attributes();
@@ -1163,7 +1163,7 @@ BOOL CellClass::Reduce_Wall(int damage)
11631163
Adjacent_Cell(FACING_WEST).Wall_Update();
11641164
Adjacent_Cell(FACING_SOUTH).Wall_Update();
11651165
Adjacent_Cell(FACING_EAST).Wall_Update();
1166-
Detach_This_From_All(As_Target(Cell_Number()));
1166+
Detach_This_From_All(As_Target());
11671167

11681168
if (overlay.Is_Crushable()) {
11691169
g_Map.Zone_Reset(1 << MZONE_NORMAL);

src/game/engine/cell.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ class CellClass
131131
BOOL Is_Occuppied() const { return m_OccupantBit != OCCUPANT_NONE; }
132132

133133
cell_t Cell_Number() const { return m_CellNumber; }
134+
target_t As_Target() const { return ::As_Target(m_CellNumber); }
134135
int8_t Get_Zone(MZoneType mzone) const { return m_Zones[mzone]; }
135136
void Set_Zone(MZoneType mzone, int8_t zone) { m_Zones[mzone] = zone; }
136137
BOOL Get_Placement_Check() const { return m_PlacementCheck; }

src/game/engine/display.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1100,7 +1100,7 @@ void DisplayClass::Mouse_Left_Up(
11001100
m_DisplayBit16 = false;
11011101

11021102
if (object != nullptr) {
1103-
target = As_Target(object);
1103+
target = object->As_Target();
11041104
} else if (cellnum != -1) {
11051105
target = As_Target(cellnum);
11061106
}

src/game/engine/factory.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ BOOL FactoryClass::Completed()
286286
void FactoryClass::Code_Pointers()
287287
{
288288
if (m_Object != nullptr) {
289-
m_Object = reinterpret_cast<TechnoClass *>(As_Target(m_Object));
289+
m_Object = reinterpret_cast<TechnoClass *>(m_Object->As_Target());
290290
}
291291
if (m_Owner != nullptr) {
292292
m_Owner = (HouseClass *)m_Owner->What_Type();

src/game/engine/foot.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1569,3 +1569,43 @@ BOOL FootClass::Is_On_Priority_Mission()
15691569
{
15701570
return m_Mission == MISSION_ENTER;
15711571
}
1572+
1573+
/**
1574+
*
1575+
*
1576+
* 0x004C35D0
1577+
*/
1578+
void FootClass::Queue_Navigation_List(target_t target)
1579+
{
1580+
if (Target_Legal(target)) {
1581+
int i;
1582+
for (i = 0; i < NAV_LENGTH && Target_Legal(m_NavList[i]); ++i);
1583+
1584+
if (target == As_Target() && i > 0) {
1585+
m_Bit2_4 = true;
1586+
} else {
1587+
if (i == 0) {
1588+
m_Bit2_4 = false;
1589+
}
1590+
if (i < NAV_LENGTH) {
1591+
m_NavList[i] = target;
1592+
}
1593+
}
1594+
1595+
if (!Target_Legal(m_NavCom) && m_Mission == MISSION_GUARD) {
1596+
Enter_Idle_Mode();
1597+
}
1598+
}
1599+
}
1600+
1601+
/**
1602+
*
1603+
*
1604+
* 0x004C3684
1605+
*/
1606+
void FootClass::Clear_Navigation_List()
1607+
{
1608+
for (int i = 0; i < NAV_LENGTH; ++i) {
1609+
m_NavList[i] = 0;
1610+
}
1611+
}

src/game/engine/foot.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ class FootClass : public TechnoClass
123123
FacingType Get_Path_Facing(int index) const { return m_Paths[index]; }
124124
target_t Nav_Com() const { return m_NavCom; }
125125

126+
void Set_To_Scatter(BOOL state) { m_ToScatter = state; }
127+
void Set_In_Formation(BOOL state) { m_InFormation = state; }
128+
void Set_Team_Speed(SpeedType speed) { m_TeamSpeed = speed; }
129+
void Set_Team_Max_Speed(MPHType mph) { m_TeamMaxSpeed = mph; }
130+
void Set_Suspended_NavCom(target_t target) { m_SuspendedNavCom = target; }
131+
126132
static int Point_Relative_To_Line(int px, int py, int sx, int sy, int ex, int ey);
127133
PathType *Find_Path_Wrapper(cell_t dest, FacingType *buffer, int length, MoveType move);
128134

@@ -134,6 +140,9 @@ class FootClass : public TechnoClass
134140
const fixed_t &Get_Speed_Multiplier() const { return m_SpeedMult; }
135141
const GamePtr<TeamClass> &Get_Team() const { return m_Team; }
136142

143+
void Queue_Navigation_List(target_t target);
144+
void Clear_Navigation_List();
145+
137146
protected:
138147
#ifndef CHRONOSHIFT_NO_BITFIELDS
139148
BOOL m_Bit1_1 : 1; // 1

0 commit comments

Comments
 (0)