spidey-decomp/thug.h
2024-07-26 17:46:50 +02:00

119 lines
2.8 KiB
C++

#pragma once
#ifndef THUG_H
#define THUG_H
#include "export.h"
#include "baddy.h"
#include "mem.h"
#include "m3dutils.h"
#include "bit2.h"
class CThug : public CBaddy {
public:
EXPORT CThug(i32*, i32);
EXPORT virtual ~CThug();
EXPORT void ClearAttackFlags(void);
EXPORT void HelpOutBuddy(CMessage*);
EXPORT void RunToWhereTheActionIs(CVector*);
EXPORT void PlayHitWallSound(void);
EXPORT void StandStill(void);
EXPORT void DieAfterFlyingAcrossRoom(void);
EXPORT void RunAppropriateHitAnim(void);
EXPORT void StopShooting(void);
EXPORT i32 TryAddingCollidePointToPath(CVector*);
EXPORT void SetHitDirectionFlag(CVector*);
EXPORT void GetReadyToShootHostage(CMessage*);
EXPORT void CheckFallBack(void);
EXPORT i32 GetLaunched(CVector*, i32, i32, i32);
EXPORT u8 TugImpulse(CVector*, CVector*, CVector*);
EXPORT void LookConfused(void);
EXPORT void Acknowledge(void);
EXPORT void StrikeUpConversation(void);
EXPORT void Guard(void);
EXPORT void CycleOrContinueAnim(i32, i32, i32, i32);
EXPORT i32 MonitorSpitPlease(void);
EXPORT void PlaySounds(void);
EXPORT i32 CanAck(i32, i32, i32, CThug*);
EXPORT i32 WallHitCheck(CVector*, CVector*, i32);
EXPORT i32 SpideyAnimUppercut(void);
EXPORT void SetAttacker(void);
EXPORT i32 AdjustPosPlaySound(i32);
EXPORT void WarnOtherThugs(void);
EXPORT void CheckToShoot(i32, i32);
EXPORT i32 DrawBarrelFlash(CVector*, CVector *, SLineInfo *, u8, u8, u8);
EXPORT i32 SetUpLaser(CGPolyLine**, CVector*, CVector*);
EXPORT i32 ShouldIShootPlayer(void);
EXPORT void Caution(void);
EXPORT i32 DetermineFightState(void);
EXPORT void LookForPlayer(void);
EXPORT void BackpedalPlease(void);
EXPORT void TakeHit(void);
EXPORT virtual u8 Grab(CVector*);
EXPORT virtual void SetParamByIndex(i32, i32);
EXPORT virtual void CreateCombatImpactEffect(CVector*, i32);
EXPORT virtual void SetThugType(int);
u8 padTop[0x330-0x324];
i32 field_330;
u8 padAfter330[0x33C-0x330-4];
i32 field_33C;
u8 padAfter33C[0x354-0x33C-4];
SHandle mHandle;
SHandle mHandleTwo;
u8 padAfter354[0x370-0x35C-sizeof(SHandle)];
i32 field_370;
i32 field_374;
i32 field_378;
i32 field_37C;
i32 field_380;
i32 field_384;
i32 field_388;
i32 field_38C;
u8 padAfter38C[0x394 - 0x38C - 4];
i32 field_394;
i32 field_398;
i32 field_39C;
CGPolyLine *field_3A0;
CVector* field_3A4;
u8 padAfter3A4[0x3B0-0x3A4-4];
i32 field_3B0;
u8 padAfter3B0[0x3B8-0x3B0-4];
i32 field_3B8;
u8 field_3BC;
u8 field_3BD;
u8 padBottom[0x3C0 - 0x3BD - 1];
};
class CThugPing : public CSimpleAnim
{
public:
EXPORT void Move(void);
EXPORT void SetPosition(void);
unsigned char padTop[8];
SHandle field_70;
SHook field_78;
};
void validate_CThug(void);
void validate_CThugPing(void);
EXPORT void Thug_CreateTHug(const unsigned int *stack, unsigned int *result);
#endif