#import "data/scripts/lib.c"
#define gpp getplayerproperty
#define cpp changeplayerproperty
#define gep getentityproperty
#define cep changeentityproperty
#define ov openborvariant
#define cv changeopenborvariant
#define oc openborconstant
#define clp changelayerproperty
#define glv getlocalvar
#define slv setlocalvar
#define sev setentityvar
#define gev getentityvar
#define sgv setglobalvar
#define ggv getglobalvar
#define MAX_PLAYERS openborvariant("maxplayers")
void set_min_level_bound(float scroll_pos, float scroll_speed, void localvar_name) {
// Trova xmin di un player esistente, poi sottrai a xmin hres/2.
if ( openborvariant("xpos") > scroll_pos ) { if ( getlocalvar(localvar_name) != 1 ) setlocalvar(localvar_name,1); }
if ( getlocalvar(localvar_name) == 1 && openborvariant("xpos") < scroll_pos && getlevelproperty("scrollspeed") != 0 ) {
float xmin = NULL();
int hres = openborvariant("hresolution");
int i;
for (i = 0; i < MAX_PLAYERS; ++i) {
void player = getplayerproperty(i, "entity");
if ( !getentityproperty(player, "exists") ) continue;
if ( getentityproperty(player, "x") < xmin || xmin == NULL() ) xmin = getentityproperty(player, "x") ;
}
if ( xmin < scroll_pos+(hres/2) ) changelevelproperty("scrollspeed",0);
} else if ( getlocalvar(localvar_name) == 1 && openborvariant("xpos") <= scroll_pos && getlevelproperty("scrollspeed") != scroll_speed ) {
float xmax = NULL();
int hres = openborvariant("hresolution");
int i;
for (i = 0; i < MAX_PLAYERS; ++i) {
void player = getplayerproperty(i, "entity");
if ( !getentityproperty(player, "exists") ) continue;
if ( getentityproperty(player, "x") > xmax || xmax == NULL() ) xmax = getentityproperty(player, "x") ;
}
if ( xmax >= scroll_pos+(hres/2) ) changelevelproperty("scrollspeed",scroll_speed);
}
}
void set_max_level_bound(float scroll_pos, float scroll_speed, void localvar_name) {
// Trova xmin di un player esistente, poi sottrai a xmin hres/2.
if ( openborvariant("xpos") > scroll_pos ) { if ( getlocalvar(localvar_name) != 1 ) setlocalvar(localvar_name,1); }
if ( getlocalvar(localvar_name) == 1 && openborvariant("xpos") > scroll_pos && getlevelproperty("scrollspeed") != 0 ) {
float xmax = NULL();
int hres = openborvariant("hresolution");
int i;
for (i = 0; i < MAX_PLAYERS; ++i) {
void player = getplayerproperty(i, "entity");
if ( !getentityproperty(player, "exists") ) continue;
if ( getentityproperty(player, "x") > xmax || xmax == NULL() ) xmax = getentityproperty(player, "x") ;
}
if ( xmax >= scroll_pos+(hres/2) ) changelevelproperty("scrollspeed",0);
} else if ( getlocalvar(localvar_name) == 1 && openborvariant("xpos") >= scroll_pos && getlevelproperty("scrollspeed") != scroll_speed ) {
float xmin = NULL();
int hres = openborvariant("hresolution");
int i;
for (i = 0; i < MAX_PLAYERS; ++i) {
void player = getplayerproperty(i, "entity");
if ( !getentityproperty(player, "exists") ) continue;
if ( getentityproperty(player, "x") < xmin || xmin == NULL() ) xmin = getentityproperty(player, "x") ;
}
if ( xmin < scroll_pos+(hres/2) ) changelevelproperty("scrollspeed",scroll_speed);
}
}