#ifndef _POWERUP_H_
 
#define _POWERUP_H_
 
 
 
#include "brender/br_types.h"
 
#include "dr_types.h"
 
 
 
extern tGot_proc* gGot_procs[34];
 
extern tLose_proc* gLose_procs[34];
 
extern tPeriodic_proc* gPeriodic_procs[34];
 
extern tU32* gReal_render_palette;
 
extern char* gFizzle_names[3];
 
extern br_vector3 gZero_v__powerup; // suffix added to avoid duplicate symbol
 
extern int gPed_harvest_sounds[4];
 
extern tHeadup_icon gIcon_list[20];
 
extern br_pixelmap* gFizzle_in[3];
 
extern int gNumber_of_powerups;
 
extern int gFizzle_height;
 
extern int gNumber_of_icons;
 
extern tPowerup* gPowerup_array;
 
 
 
void LosePowerupX(tPowerup* pThe_powerup, int pTell_net_players);
 
 
 
void LosePowerup(tPowerup* pThe_powerup);
 
 
 
void LoseAllSimilarPowerups(tPowerup* pThe_powerup);
 
 
 
int GotPowerupX(tCar_spec* pCar, int pIndex, int pTell_net_players, int pDisplay_headup, tU32 pTime_left);
 
 
 
int GotPowerup(tCar_spec* pCar, int pIndex);
 
 
 
void LoadPowerups(void);
 
 
 
void InitPowerups(void);
 
 
 
void CloseDownPowerUps(void);
 
 
 
void DrawPowerups(tU32 pTime);
 
 
 
void DoPowerupPeriodics(tU32 pFrame_period);
 
 
 
void GotPowerupN(int pN);
 
 
 
void GotPowerup0(void);
 
 
 
void GotPowerup1(void);
 
 
 
void GotPowerup2(void);
 
 
 
void GotPowerup3(void);
 
 
 
void GotPowerup4(void);
 
 
 
void GotPowerup5(void);
 
 
 
void GotPowerup6(void);
 
 
 
void GotPowerup7(void);
 
 
 
void GotPowerup8(void);
 
 
 
void GotPowerup9(void);
 
 
 
int GotCredits(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ImprovePSPowerup(tCar_spec* pCar, int pIndex);
 
 
 
int GotTimeOrPower(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetPedSpeed(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetHades(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetHades(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetPedSize(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetPedExplode(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetInvulnerability(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetInvulnerability(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetFreeRepairs(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetFreeRepairs(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetBlindPedestrians(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetBlindPedestrians(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int FreezeTimer(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void UnfreezeTimer(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int DoInstantRepair(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetPedSpeed(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetPedSize(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetPedExplode(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetEngineFactor(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetUnderwater(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int TrashBodywork(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int TakeDrugs(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void PaletteFuckedUpByDrugs(br_pixelmap* pPixelmap, int pOffset);
 
 
 
void TheEffectsOfDrugs(tPowerup* pPowerup, tU32 pPeriod);
 
 
 
int SetOpponentsSpeed(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetCopsSpeed(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetGravity(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetPinball(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetWallclimb(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetBouncey(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetSuspension(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetTyreGrip(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetDamageMultiplier(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetEngineFactor(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetUnderwater(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void PukeDrugsBackUp(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetOpponentsSpeed(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetCopsSpeed(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetGravity(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetPinball(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetWallclimb(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetBouncey(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetSuspension(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetDamageMultiplier(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetTyreGrip(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int PickAtRandom(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int PedestrianRespawn(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int GotVouchers(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void MungeVouchers(tPowerup* pPowerup, tU32 pPeriod);
 
 
 
int SetInstantHandbrake(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetInstantHandbrake(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void DoBouncey(tPowerup* pPowerup, tU32 pPeriod);
 
 
 
int HitMine(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetMassMultiplier(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetMassMultiplier(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int ShowPedestrians(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void HidePedestrians(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetProximity(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetProximity(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetPedHarvest(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetPedHarvest(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
int SetVesuvianCorpses(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ResetVesuvianCorpses(tPowerup* pPowerup, tCar_spec* pCar);
 
 
 
void ReceivedPowerup(tNet_contents* pContents);
 
 
 
void SendCurrentPowerups(void);
 
 
 
void LoseAllLocalPowerups(tCar_spec* pCar);
 
 
 
// Added by dethrace
 
void GetPowerupMessage(int pN, char* pMessage);
 
 
 
#endif