mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-08 03:28:03 +03:00
Added raptor, tiger, cobra, eagle, crow
This commit is contained in:
parent
1ac4fb7f07
commit
fc6e99ca9d
8 changed files with 465 additions and 76 deletions
Binary file not shown.
|
@ -17,6 +17,8 @@ BITE_INFO sharkBite = { 17, -22, 344, 12 };
|
|||
BITE_INFO tigerBite = { 19, -13, 3, 26 };
|
||||
BITE_INFO cobraBite = { 0, 0, 0, 13 };
|
||||
BITE_INFO raptorBite = { 0, 66, 318, 22 };
|
||||
BITE_INFO eagleBite = { 15, 46, 21, 6 };
|
||||
BITE_INFO crowBite = { 2, 10, 60, 14 };
|
||||
|
||||
void __cdecl InitialiseWildBoar(__int16 itemNum)
|
||||
{
|
||||
|
@ -1215,3 +1217,133 @@ void __cdecl RaptorControl(__int16 itemNum)
|
|||
CreatureJoint(item, 3, neck);
|
||||
CreatureAnimation(itemNum, angle, tilt);
|
||||
}
|
||||
|
||||
void InitialiseEagle(__int16 itemNum)
|
||||
{
|
||||
InitialiseCreature(itemNum);
|
||||
|
||||
ITEM_INFO* item = &Items[itemNum];
|
||||
if (item->objectNumber == ID_CROW)
|
||||
{
|
||||
item->animNumber = Objects[ID_CROW].animIndex + 14;
|
||||
item->frameNumber = Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = item->goalAnimState = 7;
|
||||
}
|
||||
else
|
||||
{
|
||||
item->animNumber = Objects[ID_EAGLE].animIndex + 5;
|
||||
item->frameNumber = Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = item->goalAnimState = 2;
|
||||
}
|
||||
}
|
||||
|
||||
void EagleControl(__int16 itemNum)
|
||||
{
|
||||
if (!CreatureActive(itemNum))
|
||||
return;
|
||||
|
||||
ITEM_INFO* item = &Items[itemNum];
|
||||
CREATURE_INFO* creature = (CREATURE_INFO *)item->data;
|
||||
|
||||
__int16 angle = 0;
|
||||
|
||||
if (item->hitPoints <= 0)
|
||||
{
|
||||
switch (item->currentAnimState)
|
||||
{
|
||||
case 4:
|
||||
if (item->pos.yPos > item->floor)
|
||||
{
|
||||
item->pos.yPos = item->floor;
|
||||
item->gravityStatus = 0;
|
||||
item->fallspeed = 0;
|
||||
item->goalAnimState = 5;
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
item->pos.yPos = item->floor;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (item->objectNumber == ID_CROW)
|
||||
item->animNumber = Objects[ID_CROW].animIndex + 1;
|
||||
else
|
||||
item->animNumber = Objects[ID_EAGLE].animIndex + 8;
|
||||
|
||||
item->frameNumber = Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = 4;
|
||||
item->gravityStatus = 1;
|
||||
item->speed = 0;
|
||||
break;
|
||||
}
|
||||
item->pos.xRot = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
AI_INFO info;
|
||||
CreatureAIInfo(item, &info);
|
||||
|
||||
GetCreatureMood(item, &info, VIOLENT);
|
||||
CreatureMood(item, &info, TIMID);
|
||||
|
||||
angle = CreatureTurn(item, ANGLE(3));
|
||||
|
||||
switch (item->currentAnimState)
|
||||
{
|
||||
case 7:
|
||||
item->pos.yPos = item->floor;
|
||||
if (creature->mood != MOOD_TYPE::BORED_MOOD)
|
||||
item->goalAnimState = 1;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
item->pos.yPos = item->floor;
|
||||
if (creature->mood == MOOD_TYPE::BORED_MOOD)
|
||||
break;
|
||||
else
|
||||
item->goalAnimState = 1;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
creature->flags = 0;
|
||||
|
||||
if (item->requiredAnimState)
|
||||
item->goalAnimState = item->requiredAnimState;
|
||||
if (creature->mood == MOOD_TYPE::BORED_MOOD)
|
||||
item->goalAnimState = 2;
|
||||
else if (info.ahead && info.distance < SQUARE(512))
|
||||
item->goalAnimState = 6;
|
||||
else
|
||||
item->goalAnimState = 3;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (creature->mood == BORED_MOOD)
|
||||
{
|
||||
item->requiredAnimState = 2;
|
||||
item->goalAnimState = 1;
|
||||
}
|
||||
else if (info.ahead && info.distance < SQUARE(512))
|
||||
item->goalAnimState = 6;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
if (!creature->flags && item->touchBits)
|
||||
{
|
||||
LaraItem->hitPoints -= 20;
|
||||
LaraItem->hitStatus = true;
|
||||
|
||||
if (item->objectNumber == ID_CROW)
|
||||
CreatureEffect(item, &crowBite, DoBloodSplat);
|
||||
else
|
||||
CreatureEffect(item, &eagleBite, DoBloodSplat);
|
||||
|
||||
creature->flags = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
CreatureAnimation(itemNum, angle, 0);
|
||||
}
|
||||
|
|
|
@ -87,3 +87,5 @@ void __cdecl ShootHarpoon(ITEM_INFO* frogman, __int32 x, __int32 y, __int32 z, _
|
|||
void __cdecl HarpoonControl(__int16 itemNum);
|
||||
void __cdecl ScubaControl(__int16 itemNumber);
|
||||
|
||||
void InitialiseEagle(__int16 itemNum);
|
||||
void EagleControl(__int16 itemNum);
|
||||
|
|
282
TR5Main/Objects/scuba.cpp
Normal file
282
TR5Main/Objects/scuba.cpp
Normal file
|
@ -0,0 +1,282 @@
|
|||
#include "objects.h"
|
||||
#include "..\Global\global.h"
|
||||
#include "..\Game\Box.h"
|
||||
#include "..\Game\items.h"
|
||||
#include "..\Game\lot.h"
|
||||
#include "..\Game\control.h"
|
||||
#include "..\Game\effects.h"
|
||||
#include "..\Game\draw.h"
|
||||
#include "..\Game\sphere.h"
|
||||
#include "..\Game\effect2.h"
|
||||
#include "..\Game\people.h"
|
||||
|
||||
BITE_INFO scubaGun = { 17, 164, 44, 18 };
|
||||
|
||||
__int32 __cdecl GetWaterSurface(__int32 x, __int32 y, __int32 z, __int16 roomNumber)
|
||||
{
|
||||
ROOM_INFO* room = &Rooms[roomNumber];
|
||||
FLOOR_INFO* floor = &room->floor[((z - room->z) >> WALL_SHIFT) + ((x - room->x) >> WALL_SHIFT) * room->xSize];
|
||||
|
||||
if (room->flags & ENV_FLAG_WATER)
|
||||
{
|
||||
while (floor->skyRoom != NO_ROOM)
|
||||
{
|
||||
room = &Rooms[floor->skyRoom];
|
||||
if (!(room->flags & ENV_FLAG_WATER))
|
||||
return (floor->ceiling << 8);
|
||||
floor = &room->floor[((z - room->z) >> WALL_SHIFT) + ((x - room->x) >> WALL_SHIFT) * room->xSize];
|
||||
}
|
||||
return NO_HEIGHT;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Go down until hit water
|
||||
while (floor->pitRoom != NO_ROOM)
|
||||
{
|
||||
room = &Rooms[floor->pitRoom];
|
||||
if (room->flags & ENV_FLAG_WATER)
|
||||
return (floor->floor << 8);
|
||||
floor = &room->floor[((z - room->z) >> WALL_SHIFT) + ((x - room->x) >> WALL_SHIFT) * room->xSize];
|
||||
}
|
||||
}
|
||||
return NO_HEIGHT;
|
||||
}
|
||||
|
||||
void __cdecl ShootHarpoon(ITEM_INFO* frogman, __int32 x, __int32 y, __int32 z, __int16 speed, __int16 yRot, __int16 roomNumber)
|
||||
{
|
||||
__int16 harpoonItemNum = CreateItem();
|
||||
if (harpoonItemNum != NO_ITEM)
|
||||
{
|
||||
ITEM_INFO* harpoon = &Items[harpoonItemNum];
|
||||
|
||||
harpoon->objectNumber = ID_SCUBA_HARPOON;
|
||||
harpoon->roomNumber = frogman->roomNumber;
|
||||
|
||||
harpoon->pos.xPos = x;
|
||||
harpoon->pos.yPos = y;
|
||||
harpoon->pos.zPos = z;
|
||||
|
||||
InitialiseItem(harpoonItemNum);
|
||||
|
||||
harpoon->pos.xRot = 0;
|
||||
harpoon->pos.yRot = yRot;
|
||||
harpoon->speed = 150;
|
||||
|
||||
AddActiveItem(harpoonItemNum);
|
||||
harpoon->status = ITEM_ACTIVE;
|
||||
|
||||
//SoundEffect(247, &dart->pos, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void __cdecl HarpoonControl(__int16 itemNum)
|
||||
{
|
||||
ITEM_INFO* item = &Items[itemNum];
|
||||
|
||||
if (item->touchBits)
|
||||
{
|
||||
LaraItem->hitPoints -= 50;
|
||||
LaraItem->hitStatus = true;
|
||||
DoBloodSplat(item->pos.xPos, item->pos.yPos, item->pos.zPos, (GetRandomControl() & 3) + 4, LaraItem->pos.yRot, LaraItem->roomNumber);
|
||||
KillItem(itemNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
__int32 ox = item->pos.xPos;
|
||||
__int32 oz = item->pos.zPos;
|
||||
|
||||
__int16 speed = (item->speed * COS(item->pos.xRot)) >> W2V_SHIFT;
|
||||
item->pos.zPos += (speed * COS(item->pos.yRot)) >> W2V_SHIFT;
|
||||
item->pos.xPos += (speed * SIN(item->pos.yRot)) >> W2V_SHIFT;
|
||||
item->pos.yPos += -((item->speed * SIN(item->pos.xRot)) >> W2V_SHIFT);
|
||||
|
||||
__int16 roomNumber = item->roomNumber;
|
||||
FLOOR_INFO* floor = GetFloor(item->pos.xPos, item->pos.yPos, item->pos.zPos, &roomNumber);
|
||||
if (item->roomNumber != roomNumber)
|
||||
ItemNewRoom(itemNum, roomNumber);
|
||||
item->floor = TrGetHeight(floor, item->pos.xPos, item->pos.yPos, item->pos.zPos);
|
||||
if (item->pos.yPos >= item->floor)
|
||||
{
|
||||
//for (__int32 i = 0; i < 4; i++)
|
||||
// TriggerDartSmoke(ox, item->pos.yPos, oz, 0, 0, 1);
|
||||
KillItem(itemNum);
|
||||
// SoundEffect(258, &item->pos, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void __cdecl ScubaControl(__int16 itemNumber)
|
||||
{
|
||||
__int32 waterHeight;
|
||||
|
||||
if (!CreatureActive(itemNumber))
|
||||
return;
|
||||
|
||||
ITEM_INFO* item = &Items[itemNumber];
|
||||
CREATURE_INFO* creature = (CREATURE_INFO *)item->data;
|
||||
|
||||
__int16 angle = 0;
|
||||
__int16 head = 0;
|
||||
__int16 neck = 0;
|
||||
|
||||
if (item->hitPoints <= 0)
|
||||
{
|
||||
if (item->currentAnimState != 9)
|
||||
{
|
||||
item->animNumber = Objects[item->objectNumber].animIndex + 16;
|
||||
item->frameNumber = Anims[item->animNumber].frameBase;
|
||||
item->currentAnimState = 9;
|
||||
}
|
||||
|
||||
CreatureFloat(itemNumber);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
AI_INFO info;
|
||||
CreatureAIInfo(item, &info);
|
||||
|
||||
GetCreatureMood(item, &info, TIMID);
|
||||
CreatureMood(item, &info, TIMID);
|
||||
|
||||
GAME_VECTOR start;
|
||||
GAME_VECTOR target;
|
||||
bool shoot = false;
|
||||
|
||||
if (Lara.waterStatus == false)
|
||||
{
|
||||
start.x = item->pos.xPos;
|
||||
start.y = item->pos.yPos - STEP_SIZE;
|
||||
start.z = item->pos.zPos;
|
||||
start.roomNumber = item->roomNumber;
|
||||
|
||||
target.x = LaraItem->pos.xPos;
|
||||
target.y = LaraItem->pos.yPos - (LARA_HITE - 150); // don't look at her origin, aim higher
|
||||
target.z = LaraItem->pos.zPos;
|
||||
|
||||
shoot = LOS(&start, &target);
|
||||
if (shoot)
|
||||
{
|
||||
creature->target.x = LaraItem->pos.xPos;
|
||||
creature->target.y = LaraItem->pos.yPos;
|
||||
creature->target.z = LaraItem->pos.zPos;
|
||||
}
|
||||
|
||||
if (info.angle < -ANGLE(45) || info.angle > ANGLE(45))
|
||||
shoot = false;
|
||||
}
|
||||
else if (info.angle > -ANGLE(45) && info.angle < ANGLE(45))
|
||||
{
|
||||
start.x = item->pos.xPos;
|
||||
start.y = item->pos.yPos;
|
||||
start.z = item->pos.zPos;
|
||||
start.roomNumber = item->roomNumber;
|
||||
|
||||
target.x = LaraItem->pos.xPos;
|
||||
target.y = LaraItem->pos.yPos;
|
||||
target.z = LaraItem->pos.zPos;
|
||||
|
||||
shoot = LOS(&start, &target);
|
||||
}
|
||||
else
|
||||
shoot = false;
|
||||
|
||||
angle = CreatureTurn(item, creature->maximumTurn);
|
||||
|
||||
waterHeight = GetWaterSurface(item->pos.xPos, item->pos.yPos, item->pos.zPos, item->roomNumber) + WALL_SIZE / 2;
|
||||
|
||||
switch (item->currentAnimState)
|
||||
{
|
||||
case 1:
|
||||
// Diver underwater
|
||||
creature->maximumTurn = ANGLE(3);
|
||||
if (shoot)
|
||||
neck = -info.angle;
|
||||
|
||||
if (creature->target.y < waterHeight && item->pos.yPos < waterHeight + creature->LOT.fly)
|
||||
item->goalAnimState = 2;
|
||||
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
|
||||
break;
|
||||
else if (shoot)
|
||||
item->goalAnimState = 4;
|
||||
break;
|
||||
|
||||
case 4:
|
||||
creature->flags = 0;
|
||||
|
||||
if (shoot)
|
||||
neck = -info.angle;
|
||||
|
||||
if (!shoot || creature->mood == MOOD_TYPE::ESCAPE_MOOD || (creature->target.y < waterHeight && item->pos.yPos < waterHeight + creature->LOT.fly))
|
||||
item->goalAnimState = 1;
|
||||
else
|
||||
item->goalAnimState = 3;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (shoot)
|
||||
neck = -info.angle;
|
||||
|
||||
if (!creature->flags)
|
||||
{
|
||||
ShootHarpoon(item, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->speed, item->pos.yRot, item->roomNumber);
|
||||
creature->flags = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 2:
|
||||
creature->maximumTurn = ANGLE(3);
|
||||
|
||||
if (shoot)
|
||||
head = info.angle;
|
||||
|
||||
if (creature->target.y > waterHeight)
|
||||
item->goalAnimState = 1;
|
||||
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
|
||||
break;
|
||||
else if (shoot)
|
||||
item->goalAnimState = 6;
|
||||
break;
|
||||
|
||||
case 6:
|
||||
creature->flags = 0;
|
||||
|
||||
if (shoot)
|
||||
head = info.angle;
|
||||
|
||||
if (!shoot || creature->mood == MOOD_TYPE::ESCAPE_MOOD || creature->target.y > waterHeight)
|
||||
item->goalAnimState = 2;
|
||||
else
|
||||
item->goalAnimState = 7;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
if (shoot)
|
||||
head = info.angle;
|
||||
|
||||
if (!creature->flags)
|
||||
{
|
||||
ShootHarpoon(item, item->pos.xPos, item->pos.yPos, item->pos.zPos, item->speed, item->pos.yRot, item->roomNumber);
|
||||
creature->flags = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
CreatureJoint(item, 0, head);
|
||||
CreatureJoint(item, 1, neck);
|
||||
CreatureAnimation(itemNumber, angle, 0);
|
||||
|
||||
switch (item->currentAnimState)
|
||||
{
|
||||
case 1:
|
||||
case 4:
|
||||
case 3:
|
||||
CreatureUnderwater(item, 512);
|
||||
break;
|
||||
default:
|
||||
item->pos.yPos = waterHeight - 512;
|
||||
}
|
||||
}
|
|
@ -72,7 +72,7 @@ void __cdecl NewObjects()
|
|||
obj->saveFlags = true;
|
||||
}
|
||||
|
||||
/*obj = &Objects[ID_CHAIN];
|
||||
obj = &Objects[ID_CHAIN];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->control = ChainControl;
|
||||
|
@ -124,7 +124,7 @@ void __cdecl NewObjects()
|
|||
obj->collision = GenericSphereBoxCollision;
|
||||
obj->saveAnim = true;
|
||||
obj->saveFlags = true;
|
||||
}*/
|
||||
}
|
||||
|
||||
obj = &Objects[ID_BADDY1];
|
||||
if (obj->loaded)
|
||||
|
@ -264,7 +264,7 @@ void __cdecl NewObjects()
|
|||
Bones[obj->boneIndex + 6 * 4] |= ROT_Y;
|
||||
}
|
||||
|
||||
/*obj = &Objects[ID_ROLLING_SPINDLE];
|
||||
obj = &Objects[ID_ROLLING_SPINDLE];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->initialise = InitialiseSpinningBlade;
|
||||
|
@ -281,7 +281,7 @@ void __cdecl NewObjects()
|
|||
obj->control = SpringBoardControl;
|
||||
obj->saveAnim = true;
|
||||
obj->saveFlags = true;
|
||||
}*/
|
||||
}
|
||||
|
||||
obj = &Objects[ID_TIGER];
|
||||
if (obj->loaded)
|
||||
|
@ -370,6 +370,40 @@ void __cdecl NewObjects()
|
|||
obj->savePosition = true;
|
||||
}
|
||||
|
||||
obj = &Objects[ID_EAGLE];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->initialise = InitialiseEagle;
|
||||
obj->control = EagleControl;
|
||||
obj->collision = CreatureCollision;
|
||||
obj->shadowSize = 128;
|
||||
obj->hitPoints = 20;
|
||||
obj->radius = 204;
|
||||
obj->intelligent = true;
|
||||
obj->savePosition = true;
|
||||
obj->saveHitpoints = true;
|
||||
obj->saveAnim = true;
|
||||
obj->saveFlags = true;
|
||||
obj->pivotLength = 0;
|
||||
}
|
||||
|
||||
obj = &Objects[ID_CROW];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->initialise = InitialiseEagle;
|
||||
obj->control = EagleControl;
|
||||
obj->collision = CreatureCollision;
|
||||
obj->shadowSize = 128;
|
||||
obj->hitPoints = 15;
|
||||
obj->radius = 204;
|
||||
obj->intelligent = true;
|
||||
obj->savePosition = true;
|
||||
obj->saveHitpoints = true;
|
||||
obj->saveAnim = true;
|
||||
obj->saveFlags = true;
|
||||
obj->pivotLength = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
obj = &Objects[ID_SPIKEY_WALL];
|
||||
if (obj->loaded)
|
||||
|
@ -401,46 +435,7 @@ void __cdecl NewObjects()
|
|||
Bones[obj->boneIndex + 11 * 4] |= ROT_Y;
|
||||
}
|
||||
|
||||
obj = &Objects[ID_FROGMAN];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->control = FrogManControl;
|
||||
obj->collision = CreatureCollision;
|
||||
obj->shadowSize = UNIT_SHADOW / 2;
|
||||
obj->hitPoints = DIVER_hitPoints;
|
||||
obj->radius = DIVER_RADIUS;
|
||||
obj->intelligent = true;
|
||||
obj->waterCreature = true;
|
||||
obj->savePosition = true;
|
||||
obj->saveHitpoints = true;
|
||||
obj->saveAnim = true;
|
||||
obj->saveFlags = true;
|
||||
obj->pivotLength = 50;
|
||||
|
||||
Bones[obj->boneIndex + 10 * 4] |= ROT_Y;
|
||||
Bones[obj->boneIndex + 14 * 4] |= ROT_Z;
|
||||
}
|
||||
|
||||
obj = &Objects[ID_FROGMAN_HARPOON];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->control = HarpoonControl;
|
||||
obj->collision = ObjectCollision;
|
||||
obj->savePosition = true;
|
||||
|
||||
printf("nmeshes: %d\n", obj->nmeshes);
|
||||
printf("meshIndex: %d\n", obj->meshIndex);
|
||||
printf("boneIndex: %d\n", obj->boneIndex);
|
||||
printf("frameBase: %d\n", obj->frameBase);
|
||||
printf("initialise: %d\n", obj->initialise);
|
||||
printf("control: %d\n", obj->control);
|
||||
printf("floor: %d\n", obj->floor);
|
||||
printf("ceiling: %d\n", obj->ceiling);
|
||||
printf("collision: %d\n", obj->collision);
|
||||
printf("drawRoutine: %d\n", obj->drawRoutine);
|
||||
printf("drawRoutineExtra: %d\n", obj->drawRoutineExtra);
|
||||
printf("objectMip: %d\n", obj->objectMip);
|
||||
}
|
||||
|
||||
obj = &Objects[ID_TRIBESMAN_AX];
|
||||
if (obj->loaded)
|
||||
|
@ -458,33 +453,7 @@ void __cdecl NewObjects()
|
|||
Bones[obj->boneIndex + 6 * 4] |= ROT_Y;
|
||||
}
|
||||
|
||||
obj = &Objects[ID_EAGLE];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->initialise = InitialiseEagle;
|
||||
obj->control = EagleControl;
|
||||
obj->collision = CreatureCollision;
|
||||
obj->shadowSize = UNIT_SHADOW / 2;
|
||||
obj->hitPoints = EAGLE_hitPoints;
|
||||
obj->radius = EAGLE_RADIUS;
|
||||
obj->intelligent = 1;
|
||||
obj->savePosition = obj->saveHitpoints = obj->saveAnim = obj->saveFlags = 1;
|
||||
obj->pivotLength = 0;
|
||||
}
|
||||
|
||||
obj = &Objects[ID_CROW];
|
||||
if (obj->loaded)
|
||||
{
|
||||
obj->initialise = InitialiseEagle;
|
||||
obj->control = EagleControl;
|
||||
obj->collision = CreatureCollision;
|
||||
obj->shadowSize = UNIT_SHADOW / 2;
|
||||
obj->hitPoints = CROW_hitPoints;
|
||||
obj->radius = CROW_RADIUS;
|
||||
obj->intelligent = 1;
|
||||
obj->savePosition = obj->saveHitpoints = obj->saveAnim = obj->saveFlags = 1;
|
||||
obj->pivotLength = 0;
|
||||
}*/
|
||||
*/
|
||||
}
|
||||
|
||||
void __cdecl CustomObjects()
|
||||
|
|
|
@ -323,6 +323,7 @@ xcopy /Y "$(ProjectDir)Scripting\Scripts\*.lua" "$(TargetDir)\Scripts"</Command>
|
|||
<ClCompile Include="Objects\sas.cpp" />
|
||||
<ClCompile Include="Objects\scuba.cpp" />
|
||||
<ClCompile Include="Objects\skeleton.cpp" />
|
||||
<ClCompile Include="Objects\trap.cpp" />
|
||||
<ClCompile Include="Objects\traps.cpp" />
|
||||
<ClCompile Include="Renderer\DepthShader.cpp" />
|
||||
<ClCompile Include="Renderer\MainShader.cpp" />
|
||||
|
|
|
@ -536,6 +536,9 @@
|
|||
<ClCompile Include="Objects\scuba.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Objects\trap.cpp">
|
||||
<Filter>File di origine</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Shaders\Shader.fx" />
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue