#pragma once

#ifdef SVQC
entity warpzone_first;
.entity warpzone_next;

void WarpZone_StartFrame();
float WarpZone_Projectile_Touch(entity this, entity toucher);

// THESE must be defined by calling QC code:
void WarpZone_PostTeleportPlayer_Callback(entity pl);
bool WarpZone_Projectile_Touch_ImpactFilter_Callback(entity this, entity toucher);

// server must also define a float called ENT_CLIENT_WARPZONE for the initial byte of WarpZone entities
//const float ENT_CLIENT_WARPZONE;
//const float ENT_CLIENT_WARPZONE_CAMERA;

void WarpZone_PlayerPhysics_FixVAngle(entity this);

void WarpZone_PostInitialize_Callback();
#endif
