#include "data/scripts/anititle.c"
#include "data/scripts/story/story_define.h"
#include "data/scripts/story.c"
#include "data/scripts/gettick.c"
#include "data/scripts/playsound.c"
void zoom()
{
void vscreen = openborvariant("vscreen");
int maxz=openborvariant("PLAYER_MAX_Z")+1000;
int zoom_value=getglobalvar("zoomvalue");
int zoom_x=getglobalvar("zoomx");
int zoom_y=getglobalvar("zoomy");
void ent=getglobalvar("zoomentity");
int px=getentityproperty(ent,"x") + zoom_x - openborvariant("xpos");
int py=getentityproperty(ent,"z") + zoom_y - openborvariant("ypos") - getentityproperty(ent,"a");
void zoom_scr = getglobalvar("zoomscreen");
if(!zoom_scr){
zoom_scr = allocscreen(openborvariant("hResolution"),openborvariant("vResolution"));
setglobalvar("zoomscreen",zoom_scr);
}
clearscreen(zoom_scr);
//draw what we need
drawspriteq(zoom_scr,0,openborconstant("MIN_INT"),maxz,0,0);
//setup drawMethod
//setdrawmethod(NULL(), 0); // ADDED - Nullify the trail effect
changedrawmethod(NULL(),"reset",1);
changedrawmethod(NULL(),"enabled",1);
changedrawmethod(NULL(),"scalex",zoom_value);
changedrawmethod(NULL(),"scaley",zoom_value);
changedrawmethod(NULL(),"centerx",px);
changedrawmethod(NULL(),"centery",py);
//Draw the resized customized screen to main screen.
drawscreen(zoom_scr,px,py, maxz+1);
changedrawmethod(NULL(),"enabled", 0);
drawspriteq(vscreen, 0, maxz+1,maxz+1, 0, 0);
drawspriteq(vscreen, 0, maxz+2,openborconstant("MAX_INT"), 0, 0);
changedrawmethod(NULL(),"reset",1);
clearspriteq();
}
void main(){
processRushCount();
menuPartners();
if(getglobalvar("zoomentity"))
{
zoom();
}
mainLoop();
}
void mainLoop(){
void scene=openborvariant("current_scene");
if(openborvariant("in_level"))
{
turnWhite();
storySystem();
}
if(openborvariant("in_titlescreen")){
if (scene!="data/scenes/intro.txt"){
inTitleLoop(1);
}
}
else {
inTitleLoop(0);
}
selectScreenEvent();
}
void selectScreenEvent(){
int was_in_selectscreen = getlocalvar("was_in_selectscreen");
if(openborvariant("in_selectscreen")){
if(was_in_selectscreen == NULL() || !was_in_selectscreen){
playSound("data/sounds/wellcome.wav");
setlocalvar("was_in_selectscreen", 1);
}
} else {
if(was_in_selectscreen != NULL() && was_in_selectscreen != 0) setlocalvar("was_in_selectscreen", 0);
}
}
void rushCountSound(int rush_count){
if (rush_count == 3) {
int iSnd = loadsample("data/sounds/hits3_triple.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 4){
int iSnd = loadsample("data/sounds/hits4_super.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 5){
int iSnd = loadsample("data/sounds/hits5_hyper.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 6){
int iSnd = loadsample("data/sounds/hits6_brutal.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 7){
int iSnd = loadsample("data/sounds/hits7_master.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 8){
int iSnd = loadsample("data/sounds/hits8_awesome.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 9){
int iSnd = loadsample("data/sounds/hits9_blaster.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 10){
int iSnd = loadsample("data/sounds/hits10_monster.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count == 11){
int iSnd = loadsample("data/sounds/hits11_king.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count >= 12 && rush_count <=20){
int iSnd = loadsample("data/sounds/hits12_killer.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count >= 21 && rush_count <=30){
int iSnd = loadsample("data/sounds/hits13_ultra.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
else if (rush_count >= 31){
int iSnd = loadsample("data/sounds/hitsx_ultimate.wav");
playsample(iSnd, 0, openborvariant("effectvol"), openborvariant("effectvol"), 100, 0);
}
}
void processRushCount(){
void vEnt = getplayerproperty(0, "entity");
if(vEnt != NULL()){
int lastRushCount = getentityvar(vEnt, "last_rush_count");
int rushCount = getentityproperty(vEnt, "rush_count");
if(lastRushCount != NULL() && rushCount < lastRushCount){ // Combo ended, play sound
rushCountSound(lastRushCount);
}
setentityvar(vEnt, "last_rush_count", rushCount);
}
}
void menuPartners()
{//Draw a CPU Partner Menu in game
//DRAW MENU IN-GAME
if(getglobalvar("activeText") == "Partner"){
void str; //USED TO DEFINE THE CURRENT "STRING" TEXT
int screen = openborvariant("hresolution"); //CURRENT SCREEN RESOLUTION
int align; //USED BY THE "STRWIDTH" FUNCTION TO ALIGN TEXT AUTOMATICALLY
int xCol1 = 231; //BASE X POSITION, FIRST COLUMN (HIGHLIGHTED OPTIONS NAME)
int xDif = 20; //DIFFERENCE BETWEEN THE FIRST AND THE SECOND COLUMNS
int xCol2 = xCol1+xDif; //BASE X POSITION, SECOND COLUMN (HIGHLIGHTED OPTIONS VALUE)
int fontTitle = 2; //FONT USED ONLY FOR THE MENU TITLE
int yPos = 90; //BASE Y POSITION FOR ALL MENU CONTENT IN GAME, USE THIS TO MOVE ALL OPTIONS TOGETHER
int font0 = 0; //THIS FONT CHANGES FROM 0 TO 1 IF THE OPTION IS HIGHLIGHTED
int font1 = 0; //THIS FONT CHANGES FROM 0 TO 1 IF THE OPTION IS HIGHLIGHTED
int yLine = 11; //SPACE BETWEEN TEXT LINES
int layer = 1000000003; //DEFAULT TEXT LAYER
//DEFINE FONTS TO HIGHLIGHTED OPTIONS
if(getglobalvar("highlight") == 0){font0 = 1;}else //IS PARTNER MODE HIGHLIGHTED??
if(getglobalvar("highlight") == 1){font1 = 1;} //IS PARTNER SPAWN HIGHLIGHTED??
//DRAW MENU TITLE
drawstring((screen-strwidth("partner_menu", fontTitle))/2, yPos-yLine*2, fontTitle, "partner_menu", layer);
//DRAW MENU CONTENT
str = "fighting_mode:";align = xCol1-strwidth(str, font0);
drawstring(align, yPos, font0, str, layer);
drawstring(xCol2, yPos, font0, getglobalvar("partnerMode"), layer);
str = "spawn:";align = xCol1-strwidth(str, font0);
yPos = yPos+yLine;
drawstring(align, yPos, font1, str, layer);
drawstring(xCol2, yPos, font1, getglobalvar("selectPartner"), layer);
}
}