mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-06 19:01:06 +03:00
143 lines
No EOL
2.8 KiB
C++
143 lines
No EOL
2.8 KiB
C++
#include "../newobjects.h"
|
|
#include "../../Game/items.h"
|
|
#include "../../Game/effect2.h"
|
|
#include "../../Game/lot.h"
|
|
#include "../../Game/Box.h"
|
|
#include "../../Game/sphere.h"
|
|
#include "../../Game/people.h"
|
|
#include "../../Game/draw.h"
|
|
#include "../../Game/effects.h"
|
|
#include "../../Game/misc.h"
|
|
#include "../../Specific/setup.h"
|
|
#include "..\..\Specific\level.h"
|
|
#include "../../Game/lara.h"
|
|
#include "../../Game/sound.h"
|
|
|
|
static BOSS_STRUCT BossData;
|
|
|
|
#define MAX_TRIGGER_RANGE 0x4000
|
|
#define SMALL_FLASH 10
|
|
#define BIG_FLASH 16
|
|
#define BOLT_SPEED 384
|
|
|
|
enum { NOTHING, SUMMONING, KNOCKBACK };
|
|
enum { NORMAL_BOLT, LARGE_BOLT, SUMMON_BOLT };
|
|
enum { RIGHT_PRONG, ICONPOS, LEFT_PRONG };
|
|
enum { ATTACK_HEAD, ATTACK_HAND1, ATTACK_HAND2 };
|
|
|
|
enum londonboss_state
|
|
{
|
|
LONDONBOSS_EMPTY,
|
|
LONDONBOSS_STAND,
|
|
LONDONBOSS_WALK,
|
|
LONDONBOSS_RUN,
|
|
LONDONBOSS_SUMMON,
|
|
LONDONBOSS_BIGZAP,
|
|
LONDONBOSS_DEATH,
|
|
LONDONBOSS_LAUGH,
|
|
LONDONBOSS_LILZAP,
|
|
LONDONBOSS_VAULT2,
|
|
LONDONBOSS_VAULT3,
|
|
LONDONBOSS_VAULT4,
|
|
LONDONBOSS_GODOWN
|
|
};
|
|
|
|
#define LONDONBOSS_VAULT2_ANIM 9
|
|
#define LONDONBOSS_VAULT3_ANIM 18
|
|
#define LONDONBOSS_VAULT4_ANIM 15
|
|
#define LONDONBOSS_GODOWN_ANIM 21
|
|
#define LONDONBOSS_STND2SUM_ANIM 1
|
|
#define LONDONBOSS_SUMMON_ANIM 2
|
|
#define LONDONBOSS_GODOWN_ANIM 21
|
|
#define LONDONBOSS_VAULT_SHIFT 96
|
|
#define LONDONBOSS_AWARE_DISTANCE SQUARE(WALL_SIZE)
|
|
#define LONDONBOSS_WALK_TURN ANGLE(4)
|
|
#define LONDONBOSS_RUN_TURN ANGLE(7)
|
|
#define LONDONBOSS_WALK_RANGE SQUARE(WALL_SIZE)
|
|
#define LONDONBOSS_WALK_CHANCE 0x100
|
|
#define LONDONBOSS_LAUGH_CHANCE 0x100
|
|
#define LONDONBOSS_TURN ANGLE(2.0f)
|
|
#define LONDONBOSS_DIE_ANIM 17
|
|
#define LONDONBOSS_FINAL_HEIGHT -11776
|
|
#define BIGZAP_TIMER 600
|
|
|
|
static void TriggerLaserBolt(PHD_VECTOR* pos, ITEM_INFO* item, long type, short yang)
|
|
{
|
|
|
|
}
|
|
|
|
static void TriggerPlasmaBallFlame(short fx_number, long type, long xv, long yv, long zv)
|
|
{
|
|
|
|
}
|
|
|
|
static void TriggerPlasmaBall(ITEM_INFO* item, long type, PHD_VECTOR* pos1, short roomNumber, short angle)
|
|
{
|
|
|
|
}
|
|
|
|
static int KnockBackCollision()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static void ExplodeLondonBoss(ITEM_INFO* item)
|
|
{
|
|
|
|
}
|
|
|
|
static void LondonBossDie(short item_number)
|
|
{
|
|
ITEM_INFO* item;
|
|
item = &Items[item_number];
|
|
item->collidable = FALSE;
|
|
item->hitPoints = -16384;
|
|
|
|
KillItem(item_number);
|
|
DisableBaddieAI(item_number);
|
|
|
|
item->flags |= ONESHOT;
|
|
}
|
|
|
|
void ControlLaserBolts(short item_number)
|
|
{
|
|
|
|
}
|
|
|
|
void ControlLondBossPlasmaBall(short fx_number)
|
|
{
|
|
|
|
}
|
|
|
|
void InitialiseLondonBoss(short item_number)
|
|
{
|
|
|
|
}
|
|
|
|
void LondonBossControl(short item_number)
|
|
{
|
|
|
|
}
|
|
|
|
void S_DrawLondonBoss(ITEM_INFO* item)
|
|
{
|
|
DrawAnimatingItem(item);
|
|
|
|
if (BossData.ExplodeCount)
|
|
{
|
|
//DrawLondonBossShield(item);
|
|
//DrawExplosionRings();
|
|
}
|
|
else
|
|
{
|
|
//DrawSummonRings();
|
|
//DrawKnockBackRings();
|
|
}
|
|
|
|
if (item->hitPoints <= 0 && BossData.ExplodeCount == 0)
|
|
{
|
|
//UpdateElectricityPoints();
|
|
//LaraElectricDeath(0, item);
|
|
//LaraElectricDeath(1, item);
|
|
}
|
|
} |