How to View Menu Setup After Exiting Options

maxman

Well-known member
As the topic says, does anybody know how to remove the "Load Game" menu where "Start Game" and "Options" are? What I wanna do is to include three modes: Start Game, Options, and Quit. Some default menus won't be seen or featured. The example is in the attachment.

EDIT:
Never mind about removing "Load Game" from the menu. Got it working by setting it up in level and not using the default title-menu script.

Before: How to Remove "Load Game" Menu from Title Screen
 

Attachments

  • RV2_301 - 0009.png
    RV2_301 - 0009.png
    158.8 KB · Views: 5
Last edited:
It's either using alternate version of OpenBoR OR it is using scripted custom menu. The latter is possible cause I've made one before (without options option though).
 
Isn't it in level from your Scorer Horror mod? I wonder how you made that custom menu with scripts.

I see Continue mode there which utunnels did make in @bWWd's Battletoads mod, but he was using skiptoset 0 in levels.txt as a first set while all the modes are in branch after selecting "Start Game".
 

Attachments

  • Battle Toads - 0007.png
    Battle Toads - 0007.png
    58.1 KB · Views: 8
from memory - If you disable saving the load won't appear anymore. But I can't really remember how

all i could find was this in the old manual...
LEVELS.TXT
Code:
cansave {int}

Defines how save states work in this level set.
0 = Save state is disabled
1 = Only saves last level (Default value). It's buggy currently though.
2 = Strict save. Lives, credits, HP, MP, weapon, remap color etc are saved. When this saved state is loaded, players immediately enter last level without going to select screen. If it's multiplayer game, you will need partner.
 
I'm back. I realized that not displaying "Load Game" option has to be set in level, not the default title screen. But it has to be in script with skiptoset set in levels.txt.

I have a problem with returning to the main menu after exiting options with the later engine other than the older one that utunnels used.

title.txt:
Code:
background data/bgs/title.gif
bglayer data/bgs/titleb.gif #0 0 0 0 0 0 1 1
bglayer data/bgs/select.gif
panel data/chars/misc/empty.gif
order a
type 2
notime 1
settime 0
nofadeout 1
nopause 1
nosave 1
levelscript data/levels/title/level.c
endlevelscript data/levels/title/endlevel.c
updatescript data/levels/title/update.c

update.c:
C:
#define gpp getplayerproperty
#define cpp changeplayerproperty
#define gep getentityproperty
#define cep changeentityproperty
#define ov openborvariant
#define cv changeopenborvariant
#define clp changelayerproperty
#define getgv getglobalvar
#define getlv getlocalvar
#define setgv setglobalvar
#define setlv setlocalvar

void pressStart()
{
    char text  = "PRESS START BUTTON UNELMIA";
    int size = 1;
    int t = ov("elapsed_time");
    int    w = strwidth(text, size);
    if(t%200>50)
    {
        drawstring(240-w/2, 190, size,text);
    }

    for(t=0; t<2; t++)
    {

        if(playerkeys(t, 1, "start"))
        {
            //jumptobranch("",1);
            cpp(t, "credits", 5);
            clp("background", 0, "enabled", 0);
            clp("bglayer", 0, "enabled", 1);
            clp("bglayer", 1, "enabled", 0);
            setgv("start", "menu");
            setlv("selector", 0);
            setupMenu();
            break;

        }
    }
}

int keyp(int p, char k)
{
    return playerkeys(p, 1, k);
}

int key(char k)
{
    int i;
    for(i=0; i<2; i++)
    {
        if(playerkeys(i, 1, k))
        {
            return 1;
        }
    }
    return 0;
}

void setupPlayerList()
{
    void list = getlv("playerlist");
    void flag = getlv("playerflag");
    if(!list)
    {
        list = array(1);
        flag = array(1);
        set(list, 0, "JJ");
        set(list, 1, "Max");
        set(flag, 0, 0);
        set(flag, 1, 0);
        setlv("playerlist", list);
        setlv("playerflag", flag);
    }
}

void setupModes()
{
    void items = getlv("modeitem");
    void widths = getlv("modesize");
    void logobg = getlv("logobg");
    if(!items)
    {
        items = array(1);
        widths = array(1);
        set(items, 0, "DEMO_TEST");
        set(widths, 0, strwidth(get(items,0),0));
        //logobg = loadsprite("data/bgs/logo.gif");
        logobg = loadsprite("data/bgs/logo640.png");
        setlv("modeitem", items);
        setlv("modesize", widths);
        setlv("logobg", logobg);
    }
}

void setupMenu()
{
    void items = getlv("menuitem");
    void widths = getlv("menusize");
    if(!items)
    {
        items = array(3);
        widths = array(3);
        set(items, 0, "New Game");
        set(items, 1, "Options");
        set(items, 2, "Quit");

        set(widths, 0, strwidth(get(items,0),0));
        set(widths, 1, strwidth(get(items,1),0));
        set(widths, 2, strwidth(get(items,2),0));

        setlv("menuitem", items);
        setlv("menusize", widths);
    }
}

void menuLoop()
{
    int size = 0;
    void ent;
    int i, f;
    int t = ov("elapsed_time");
    int selector = getlv("selector");
    void items = getlv("menuitem");
    void widths = getlv("menusize");
    int se = loadsample("data/sounds/beep2.wav");

    for(i=0; i<size(items); i++)
    {
        if(selector==i)    size = 1;
        else size = 0;
        drawstring(240-get(widths,i)/2, 200+i*12, size,get(items,i));
    }

    if(key("moveup"))
    {
        if(--selector<0)
        {
            selector = size(items)-1;
        }
        playsample(se);
    }
    else if(key("movedown"))
    {
        if(++selector>=size(items))
        {
            selector = 0;
        }
        playsample(se);
    }
    else if(key("start") || key("attack"))
    {
        playsample(se);
        if(selector==2)
        {
            shutdown();
        }
        else if(selector==1)
        {
            setlv("pause",1);
            options();
            setlv("pause",0);
        }
        /*else if(selector==1)
        {
            if(getgv("hassave"))
            {
                jumptobranch("",1);
                cv("usesave", 1);
            }
        }*/
        else
        {
            //setupModes();
            //clp("background", 0, "enabled", 0);
            //clp("bglayer", 0, "enabled", 0);
            //clp("bglayer", 1, "enabled", 0);
            //setlv("mselector", 0);
            setgv("start", "mode");
                jumptobranch("",1);
                //cv("usesave", 1);
        }
    }
    if(key("jump"))
    {
        clp("background", 0, "enabled", 1);
        clp("bglayer", 0, "enabled", 0);
        clp("bglayer", 1, "enabled", 0);
        setgv("start", NULL());
    }
    setlv("selector", selector);
}

void chooseMode()
{
    int size = 0;
    void ent;
    int i, shift;
    char modet = "SELECT MODE";
    int t = openborvariant("elapsed_time");
    int selector = getlv("mselector");
    void items = getlv("modeitem");
    void widths = getlv("modesize");
    void logobg = getlv("logobg");
    int se = loadsample("data/sounds/beep2.wav");
   
    changedrawmethod(NULL(), "reset", 1);
    changedrawmethod(NULL(), "enabled", 1);
    changedrawmethod(NULL(), "rotate", (t/10)%360);
    changedrawmethod(NULL(), "centerx", 480);
    changedrawmethod(NULL(), "centery", 480);
    changedrawmethod(NULL(), "alpha", 6);
    shift = (t/20)%50;
    if((t/20)%100>=50) shift = 49-shift;
    drawsprite(logobg, 249 + shift, 120-shift, 1);
    changedrawmethod(NULL(), "enabled", 0);

    drawstring(240-strwidth(modet, 2)/2, 140, 2, modet);

    for(i=0; i<size(items); i++)
    {
        if(selector==i)    size = 1;
        else size = 0;
        drawstring(240-get(widths,i)/2, 240+i*12, size,get(items,i));
    }

    if(key("moveup"))
    {
        if(--selector<0)
        {
            selector = size(items)-1;
        }
        playsample(se);
    }
    else if(key("movedown"))
    {
        if(++selector>=size(items))
        {
            selector = 0;
        }
        playsample(se);
    }
    else if(key("start") || key("attack"))
    {
        playsample(se);

        for(i=0; i<2; i++)
        {
            if(keyp(i, "start") || keyp(i, "attack"))
                setlv("player."+i+".join", 1);
        }
        setupPlayerList();
        clp("background", 0, "enabled", 0);
        clp("bglayer", 0, "enabled", 0);
        clp("bglayer", 1, "enabled", 1);
        setspawnentry("name", "star");
        setspawnentry("health", 10000);
        ent = spawn();
        cep(ent, "position", 240, 200, 0);
        cep(ent, "noaicontrol", 1);
        setlv("star", ent);
        setgv("start", "select");
    }
    if(key("jump"))
    {
        clp("background", 0, "enabled", 0);
        clp("bglayer", 0, "enabled", 1);
        clp("bglayer", 1, "enabled", 0);
        setgv("start", "menu");
    }
    setlv("mselector", selector);
}

void selectPlayer()
{
    int i, s, os, t=0, d=0;
    void ent;
    void list = getlv("playerlist");
    void flag = getlv("playerflag");
   
    for(i=0; i<2; i++)
    {
        if(getlv("player."+i+".join"))
        {
            if(!getlv("player."+i+".decided"))
            {
                s = getlv("player."+i+".selector");
                if(!s) s = 0;
                if(gpp(i, "name")=="")
                {
                    if(get(flag, s))
                    {
                        if(getlv("player."+i+".move")==-1)
                        {
                            if(--s<0) s=size(flag)-1;
                        }
                        else
                        {
                            if(++s>=size(list)) s=0;
                        }
                    }
                   
                    cpp(i, "name", get(list, s));
                    set(flag, s, 1);
                    ent = gpp(i, "entity");
                    if(ent) killentity(ent);
                    setspawnentry("name", gpp(i, "name"));
                    ent = spawn();
                    cep(ent, "position", 110+100*i, 200, 0);
                    cep(ent, "direction", 1-i);
                    cep(ent, "aiflag", "blink", 0);
                    cep(ent, "noaicontrol", 1);
                    performattack(ent, openborconstant("ANI_IDLE"));
                    cpp(i, "entity", ent);
                    cep(getlv("star"), "position", 160, 200, 0);
                }
                os = s;
                ent = gpp(i, "entity");
                if(keyp(i, "moveleft"))
                {
                    if(--s<0) s = size(list)-1;
                    setlv("player."+i+".move", -1);
                }
                else if(keyp(i, "moveright"))
                {
                    if(++s>=size(list)) s = 0;
                    setlv("player."+i+".move", 1);
                }
                else if (keyp(i, "start") || keyp(i, "attack"))
                {
                    if(gep(ent, "aiflag", "idling"))
                    {
                        cep(ent, "animation", openborconstant("ANI_PICK"));
                        setlv("player."+i+".decided", 1);
                        if(getlv("mselector")==3)
                        {
                            setspawnentry("name", "zoom");
                            setspawnentry("coords", 160, 260, 0);
                            spawn();
                        }
                    }
                }
                if(os!=s)
                {
                    cpp(i, "name", "");
                    set(flag, os, 0);
                }
                setlv("player."+i+".selector", s);
            }
            else
            {
                ent = gpp(i, "entity");
                if(!gep(ent, "aiflag", "animating"))
                {
                    d++;
                }
            }
            t++;
        }
        else
        {
            setlv("player."+i+".join", keyp(i, "start"));
        }
    }
    if(t>0 && t==d)
    {
        for(i=0; i<2; i++)
        {
            cpp(i, "entity", NULL());
            if(gpp(i, "name")!="")
            {
                cpp(i, "lives", 5);
            }
        }
        jumptobranch(get(getlv("modeitem"),getlv("mselector")),1);
    }
    else if(key("jump"))
    {
        for(i=0; i<2; i++)
        {
            cpp(i, "lives", 0);
            cpp(i, "credits", 0);
            cpp(i, "name", "");
            ent = gpp(i, "entity");
            if(ent) killentity(ent);
            cpp(i, "entity", NULL());
            setlv("player."+i+".join", NULL());
            setlv("player."+i+".decided", NULL());
        }
        for(i=0; i<size(flag); i++)
        {
            set(flag, i, 0);
        }
        ent = getlv("star");
        if(ent) killentity(ent);
        setlv("star", NULL());
        clp("background", 0, "enabled", 0);
        clp("bglayer", 0, "enabled", 0);
        clp("bglayer", 1, "enabled", 0);
        setlv("mselector", 0);
        setgv("start", "mode");
    }

}

void main()
{
    void type = getgv("start");

    if(type==NULL())
    {
        pressStart();
    }
    else if(type=="menu")
    {
        if(!getlv("pause"))menuLoop();
    }
    else if(type=="mode")
    {
        chooseMode();
    }
    /*else if(type=="select")
    {
        selectPlayer();
    }*/
}

void clear()
{
    int i;
    void list = getlv("playerlist");
    void flag = getlv("playerflag");
    void menuitem = getlv("menuitem");
    void menusize = getlv("menusize");
    void modeitem = getlv("modeitem");
    void modesize = getlv("modesize");
    void logobg = getlv("logobg");
    if(list)
    {
        for(i=0; i<size(list); i++)
        {
            set(list, i, NULL());
        }
        free(list);
    }
    if(menuitem)
    {
        for(i=0; i<size(menuitem); i++)
        {
            set(menuitem, i, NULL());
        }
        free(menuitem);
    }
    if(modeitem)
    {
        for(i=0; i<size(modeitem); i++)
        {
            set(modeitem, i, NULL());
        }
        free(modeitem);
    }
    if(flag){
        free(flag);
    }
    if(menusize){
        free(menusize);
    }
    if(modesize){
        free(modesize);
    }
    if(logobg){
        free(logobg);
    }
}

level.c: (I plan on creating menus with no save feature for the entire game.)
C:
void main()
{
    //int f;
    changelayerproperty("bglayer", 0, "enabled", 0);
    changelayerproperty("bglayer", 1, "enabled", 0);
    
    //f = openfilestream("../"+openborvariant("pakname")+".s00", 1);
    //closefilestream(f);
    //setglobalvar("hassave", f>=0);
    playmusic("data/music/remix.ogg", 1); 
    playgif("data/scenes/hotc.gif");
    playgif("data/scenes/kevnphet.gif");
}

Levels.txt:
Code:
Set    Demo_test
credits    10
noshare    1
lives    5
typemp    1
skipselect JJ
#cansave 0

branch Title
file data/levels/title/title.txt
branch Beach
z    412 412 412
file    data/levels/beach.txt
branch Sabaku
z    348 348 348
file    data/levels/desert.txt
branch Ice
z    920 920 920
file    data/levels/ice2.txt

This is quite difficult to create menus in levels as @msmalik681 said.

Is it okay I use the menus with or without the save system?
 
I do have a problem when I exit the options menu. I tried using !openborvariant("in_options") for displaying the main scripted menu, but it doesn't work. Am I missing something?


levels.txt:
Code:
skiptoset 0

Set    Demo_test
credits    10
noshare    1
lives    5
typemp    1
skipselect JJ
cansave 0

branch Title
file data/levels/title/title.txt

title.txt:
Code:
background data/bgs/title.gif
bglayer data/bgs/titleb.gif
bglayer data/bgs/select.gif
panel data/chars/misc/empty.gif
order a
type 2
notime 1
settime 0 
nofadeout 1
nopause 1
nosave 1
levelscript data/levels/title/level.c
endlevelscript data/levels/title/endlevel.c
updatescript data/levels/title/update.c

level.c:
C:
void main()
{
    int f;
    changelayerproperty("bglayer", 0, "enabled", 0);
    changelayerproperty("bglayer", 1, "enabled", 0);
    
    f = openfilestream("../"+openborvariant("pakname")+".s00", 1);
    closefilestream(f);
    setglobalvar("hassave", f>=0);
    //playmusic("data/music/remix.ogg", 1); 
    playgif("data/scenes/hotc.gif");
    playgif("data/scenes/kevnphet.gif");
}

endlevel.c:
C:
void main()
{
    setglobalvar("start", NULL());
}

update.c:
C:
#define gpp getplayerproperty
#define cpp changeplayerproperty
#define gep getentityproperty
#define cep changeentityproperty
#define ov openborvariant
#define cv changeopenborvariant
#define clp changelayerproperty
#define getgv getglobalvar
#define getlv getlocalvar
#define setgv setglobalvar
#define setlv setlocalvar

void pressStart()
{
    char text  = "PRESS START BUTTON UNELMIA";
    int size = 1;
    int t = ov("elapsed_time");
    int    w = strwidth(text, size);
    if(t%200>50)
    {
        drawstring(240-w/2, 190, size,text); 
    }

    for(t=0; t<2; t++)
    {

        if(playerkeys(t, 1, "start"))
        {
            //jumptobranch("",1);
            cpp(t, "credits", 5);
            clp("background", 0, "enabled", 0);
            clp("bglayer", 0, "enabled", 1);
            clp("bglayer", 1, "enabled", 0);
            setgv("start", "menu");
            setlv("selector", 0);
            setupMenu();
            break;

        }
    }
}

int keyp(int p, char k)
{
    return playerkeys(p, 1, k);
}

int key(char k)
{
    int i;
    for(i=0; i<2; i++)
    {
        if(playerkeys(i, 1, k))
        {
            return 1;
        }
    }
    return 0;
}

void setupPlayerList()
{
    void list = getlv("playerlist");
    void flag = getlv("playerflag");
    if(!list)
    {
        list = array(1);
        flag = array(1);
        set(list, 0, "JJ");
        set(list, 1, "Max");
        set(flag, 0, 0);
        set(flag, 1, 0);
        setlv("playerlist", list);
        setlv("playerflag", flag);
    }
}

void setupModes()
{
    void items = getlv("modeitem");
    void widths = getlv("modesize");
    void logobg = getlv("logobg");
    if(!items)
    {
        items = array(1);
        widths = array(1);
        set(items, 0, "DEMO_TEST");
        set(widths, 0, strwidth(get(items,0),0));
        //logobg = loadsprite("data/bgs/logo.gif");
        logobg = loadsprite("data/bgs/logo640.png");
        setlv("modeitem", items);
        setlv("modesize", widths);
        setlv("logobg", logobg);
    }
}

void setupMenu()
{
    void items = getlv("menuitem");
    void widths = getlv("menusize");
    if(!items)
    {
        items = array(3);
        widths = array(3);
        set(items, 0, "New Game");
        set(items, 1, "Options");
        set(items, 2, "Quit");

        set(widths, 0, strwidth(get(items,0),0));
        set(widths, 1, strwidth(get(items,1),0));
        set(widths, 2, strwidth(get(items,2),0));

        setlv("menuitem", items);
        setlv("menusize", widths);
    }
}

void menuLoop()
{
    int size = 0;
    void ent;
    int i, f;
    int t = ov("elapsed_time");
    int selector = getlv("selector");
    void items = getlv("menuitem");
    void widths = getlv("menusize");
    int se = loadsample("data/sounds/beep2.wav");

    if( openborvariant("current_branch") == "Title" && !openborvariant("in_options") ){
        setupMenu();
    }

    for(i=0; i<size(items); i++)
    {
        if(selector==i)    size = 1;
        else size = 0;
        drawstring(240-get(widths,i)/2, 200+i*12, size,get(items,i));
    }

    if(key("moveup"))
    {
        if(--selector<0)
        {
            selector = size(items)-1;
        }
        playsample(se);
    }
    else if(key("movedown"))
    {
        if(++selector>=size(items))
        {
            selector = 0;
        }
        playsample(se);
    }
    else if(key("start") || key("attack"))
    {
        playsample(se);
        if(selector==2)
        {
            shutdown();
        }
        else if(selector==1)
        {
            setlv("pause",1);
            options();
            setlv("pause",0);

            /*if( !openborvariant("in_options") ){
                setupMenu();
            }*/
        }
        /*else if(selector==1)
        {
            if(getgv("hassave"))
            {
                jumptobranch("",1);
                cv("usesave", 1);
            }
        }*/
        else
        {
            //setupModes();
            //clp("background", 0, "enabled", 0);
            //clp("bglayer", 0, "enabled", 0);
            //clp("bglayer", 1, "enabled", 0);
            //setlv("mselector", 0);
            setgv("start", "mode");
                jumptobranch("",1);
                //cv("usesave", 1);
        }
    }
    if(key("jump"))
    {
        clp("background", 0, "enabled", 1);
        clp("bglayer", 0, "enabled", 0);
        clp("bglayer", 1, "enabled", 0);
        setgv("start", NULL());
    }
    setlv("selector", selector);
}

void chooseMode()
{
    int size = 0;
    void ent;
    int i, shift;
    char modet = "SELECT MODE";
    int t = openborvariant("elapsed_time");
    int selector = getlv("mselector");
    void items = getlv("modeitem");
    void widths = getlv("modesize");
    void logobg = getlv("logobg");
    int se = loadsample("data/sounds/beep2.wav");
    
    changedrawmethod(NULL(), "reset", 1);
    changedrawmethod(NULL(), "enabled", 1);
    changedrawmethod(NULL(), "rotate", (t/10)%360);
    changedrawmethod(NULL(), "centerx", 480);
    changedrawmethod(NULL(), "centery", 480);
    changedrawmethod(NULL(), "alpha", 6);
    shift = (t/20)%50;
    if((t/20)%100>=50) shift = 49-shift;
    drawsprite(logobg, 249 + shift, 120-shift, 1);
    changedrawmethod(NULL(), "enabled", 0);

    drawstring(240-strwidth(modet, 2)/2, 140, 2, modet);

    for(i=0; i<size(items); i++)
    {
        if(selector==i)    size = 1;
        else size = 0;
        drawstring(240-get(widths,i)/2, 240+i*12, size,get(items,i));
    }

    if(key("moveup"))
    {
        if(--selector<0)
        {
            selector = size(items)-1;
        }
        playsample(se);
    }
    else if(key("movedown"))
    {
        if(++selector>=size(items))
        {
            selector = 0;
        }
        playsample(se);
    }
    else if(key("start") || key("attack"))
    {
        playsample(se);

        for(i=0; i<2; i++)
        {
            if(keyp(i, "start") || keyp(i, "attack"))
                setlv("player."+i+".join", 1);
        }
        setupPlayerList();
        clp("background", 0, "enabled", 0);
        clp("bglayer", 0, "enabled", 0);
        clp("bglayer", 1, "enabled", 1);
        setspawnentry("name", "star");
        setspawnentry("health", 10000);
        ent = spawn();
        cep(ent, "position", 240, 200, 0);
        cep(ent, "noaicontrol", 1);
        setlv("star", ent);
        setgv("start", "select");
    }
    if(key("jump"))
    {
        clp("background", 0, "enabled", 0);
        clp("bglayer", 0, "enabled", 1);
        clp("bglayer", 1, "enabled", 0);
        setgv("start", "menu");
    }
    setlv("mselector", selector);
}

void selectPlayer()
{
    int i, s, os, t=0, d=0;
    void ent;
    void list = getlv("playerlist");
    void flag = getlv("playerflag");
    
    for(i=0; i<2; i++)
    {
        if(getlv("player."+i+".join"))
        {
            if(!getlv("player."+i+".decided"))
            {
                s = getlv("player."+i+".selector");
                if(!s) s = 0;
                if(gpp(i, "name")=="")
                {
                    if(get(flag, s))
                    {
                        if(getlv("player."+i+".move")==-1)
                        {
                            if(--s<0) s=size(flag)-1;
                        }
                        else 
                        {
                            if(++s>=size(list)) s=0;
                        }
                    }
                    
                    cpp(i, "name", get(list, s));
                    set(flag, s, 1);
                    ent = gpp(i, "entity");
                    if(ent) killentity(ent);
                    setspawnentry("name", gpp(i, "name"));
                    ent = spawn();
                    cep(ent, "position", 110+100*i, 200, 0);
                    cep(ent, "direction", 1-i);
                    cep(ent, "aiflag", "blink", 0);
                    cep(ent, "noaicontrol", 1);
                    performattack(ent, openborconstant("ANI_IDLE"));
                    cpp(i, "entity", ent);
                    cep(getlv("star"), "position", 160, 200, 0);
                }
                os = s;
                ent = gpp(i, "entity");
                if(keyp(i, "moveleft"))
                {
                    if(--s<0) s = size(list)-1;
                    setlv("player."+i+".move", -1);
                }
                else if(keyp(i, "moveright"))
                {
                    if(++s>=size(list)) s = 0;
                    setlv("player."+i+".move", 1);
                }
                else if (keyp(i, "start") || keyp(i, "attack"))
                {
                    if(gep(ent, "aiflag", "idling"))
                    {
                        cep(ent, "animation", openborconstant("ANI_PICK"));
                        setlv("player."+i+".decided", 1);
                        if(getlv("mselector")==3)
                        {
                            setspawnentry("name", "zoom");
                            setspawnentry("coords", 160, 260, 0);
                            spawn();
                        }
                    }
                }
                if(os!=s) 
                {
                    cpp(i, "name", "");
                    set(flag, os, 0);
                }
                setlv("player."+i+".selector", s);
            }
            else 
            {
                ent = gpp(i, "entity");
                if(!gep(ent, "aiflag", "animating"))
                {
                    d++;
                }
            }
            t++;
        }
        else
        {
            setlv("player."+i+".join", keyp(i, "start"));
        }
    }
    if(t>0 && t==d)
    {
        for(i=0; i<2; i++)
        {
            cpp(i, "entity", NULL());
            if(gpp(i, "name")!="")
            {
                cpp(i, "lives", 5);
            }
        }
        jumptobranch(get(getlv("modeitem"),getlv("mselector")),1);
    }
    else if(key("jump"))
    {
        for(i=0; i<2; i++)
        {
            cpp(i, "lives", 0);
            cpp(i, "credits", 0);
            cpp(i, "name", "");
            ent = gpp(i, "entity");
            if(ent) killentity(ent);
            cpp(i, "entity", NULL());
            setlv("player."+i+".join", NULL());
            setlv("player."+i+".decided", NULL());
        }
        for(i=0; i<size(flag); i++)
        {
            set(flag, i, 0);
        }
        ent = getlv("star");
        if(ent) killentity(ent);
        setlv("star", NULL());
        clp("background", 0, "enabled", 0);
        clp("bglayer", 0, "enabled", 0);
        clp("bglayer", 1, "enabled", 0);
        setlv("mselector", 0);
        setgv("start", "mode");
    }

}

void main()
{
    void type = getgv("start");

    if(type==NULL())
    {
        pressStart();
    }
    else if(type=="menu")
    {
        if(!getlv("pause"))menuLoop();
    }
    else if(type=="mode")
    {
        chooseMode();
    }
    /*else if(type=="select")
    {
        selectPlayer();
    }*/
}

void clear()
{
    int i;
    void list = getlv("playerlist");
    void flag = getlv("playerflag");
    void menuitem = getlv("menuitem");
    void menusize = getlv("menusize");
    void modeitem = getlv("modeitem");
    void modesize = getlv("modesize");
    void logobg = getlv("logobg");
    if(list)
    {
        for(i=0; i<size(list); i++)
        {
            set(list, i, NULL());
        }
        free(list);
    }
    if(menuitem)
    {
        for(i=0; i<size(menuitem); i++)
        {
            set(menuitem, i, NULL());
        }
        free(menuitem);
    }
    if(modeitem)
    {
        for(i=0; i<size(modeitem); i++)
        {
            set(modeitem, i, NULL());
        }
        free(modeitem);
    }
    if(flag){
        free(flag);
    }
    if(menusize){
        free(menusize);
    }
    if(modesize){
        free(modesize);
    }
    if(logobg){
        free(logobg);
    }
}
 
Back
Top Bottom