int round(float f){
if(f<0.5&&f>-0.5){
return 0;
}else{
int diff=f;
int num=0;
if(diff>0){
while(diff>1){
diff-=1;
num+=1;
}
if(diff<0.5){
return num;
}else{
return num+1;
}
}else{
while(diff<-1){
diff+=1;
num-=1;
}
if(diff>-0.5){
return num;
}else{
return num-1;
}
}
}
}
const int run_meter0=13268;
const int run_meter1=13267;
const int run_meter2=13266;
const int run_meter3=13265;
const int run_meter4=13264;
const int run_meter5=13263;
const int run_meter6=13262;
const int run_meter7=13261;
const int run_meter8=13260;
const float Lspeedpercent=150;
global script onstart {
void run() {
float Lspeed=Lspeedpercent/100;
int x=Link->X;
int y=Link->Y;
int curmap=-1;
int curscreen=-1;
int runtimer=720;
//one time things go here
while(true) {
if(curscreen!=Game->GetCurScreen()&&curmap==Game->GetCurMap()){ //this screen change code is to prevent bugs
Waitframes(10);
curscreen=Game->GetCurScreen();
x=Link->X;
y=Link->Y;
}
if(curmap!=Game->GetCurMap()&&curscreen==Game->GetCurScreen()){
Waitframes(10);
curmap=Game->GetCurMap();
x=Link->X;
y=Link->Y;
}
if(curmap!=Game->GetCurMap()&&curscreen!=Game->GetCurScreen()){
Waitframes(10);
curscreen=Game->GetCurScreen();
curmap=Game->GetCurMap();
x=Link->X;
y=Link->Y;
}
if(Link->InputL&&runtimer>0){ //Test if L is pressed
Link->X+=round((Lspeed-1)*(Link->X-x));
Link->Y+=round((Lspeed-1)*(Link->Y-y));
if(runtimer>700){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter8,6,64);
}else if(runtimer>600){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter7,6,64);
}else if(runtimer>490){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter6,6,64);
}else if(runtimer>380){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter5,6,64);
}else if(runtimer>270){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter4,6,64);
}else if(runtimer>160){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter3,6,64);
}else if(runtimer>50){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter2,6,64);
}else if(runtimer>0){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter1,6,64);
}
runtimer-=3;
}
if(Link->InputL&&runtimer<=0){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter0,6,64);
}
if(!Link->InputL&&runtimer<720){
if(runtimer>700){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter8,6,64);
}else if(runtimer>600){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter7,6,64);
}else if(runtimer>490){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter6,6,64);
}else if(runtimer>380){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter5,6,64);
}else if(runtimer>270){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter4,6,64);
}else if(runtimer>160){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter3,6,64);
}else if(runtimer>50){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter2,6,64);
}else if(runtimer>0){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter1,6,64);
}else if(runtimer<=0){
Screen->FastTile(6,Link->X,Link->Y-16,run_meter0,6,64);
}
runtimer+=1;
}
x=Link->X;
y=Link->Y;
Waitframe();
}
}
}
|