Game Crashes without Save files?

Skull Kingz

Active member
Ok, so I think my days of spaghetti codes are coming back to haunt me. I don't even know where to begin..

So the game I'm working on is going smooth until I delete my save files and start fresh. It's a weird bug that I've never stumbled across. I can mod the game, boot it up and everything when I'm using my previous save files in the save folder, but when I pak the game up and start fresh with no saves, it crashes. The OpenBor Log says "There's an exception while executing script 'updated'"... So I'm sure there's an error in my Updated Script file. The game boots and then goes straight to credits. Also, I'm using some copy/paste codes from Volcanic and White Dragon. I attached my OpenBorLog below because it was too big to paste.



Long story short, I think there's an error with the animated title screen, and my updated script. Any advice for a guy that hardly knows how to code?
 

Attachments

Part 1 Updated.c

Code:
//scripted var
#define    TITLE_TEXT 1        //1
#define    CURSORSPR1 2        //2
#define    CURSORSPR2 3        //3
#define    CURSORSPR3 4        //4
#define    TITLE_LOOPS 5        //5
#define    LOADINGSPR 6        //6
#define GAMEINIT 7        //6
#define    TOTALANIFRAME 297    //297
#include "data/scripts/define.h"
#include "data/scripts/traileru.c"
#include "data/scripts/biStory.c"
#include "data/scripts/movelist.c"
#include "data/scripts/lifebar.c"
#include "data/scripts/gettick.c"
#include "data/scripts/common/file.c"
void test()
{
    //void a=allocscript("a");
    //log(a);
    //loadscript(a,"data/scripts/aa.txt");
    //compilescript(a);
    //setglobalvar("a",a);

}
void getZoomScr()
{
    void zoom_scr = getindexedvar(ZOOM_SCR);
    if(!zoom_scr){
        zoom_scr = allocscreen(480,272);
        setindexedvar(ZOOM_SCR,zoom_scr);
    }
    return zoom_scr;
}
void zoom()
{
    void vscreen,rot;
    void zoom_scr = getZoomScr();
    void maxz=openborvariant("PLAYER_MAX_Z");
    void zoom_value=getindexedvar(ZOOM_VALUE);
    void ent=getindexedvar(ZOOM_ENT);
    void px=getentityproperty(ent,"x") - openborvariant("xpos");
    void py=getentityproperty(ent,"z") - openborvariant("ypos") - getentityproperty(ent,"a");
    clearscreen(zoom_scr);
    zoom_value+=get_tick()*1.5;
    if(!zoom_value)zoom_value=256;

    if(zoom_value>420){
        setindexedvar(ZOOM_VALUE,256);
        setindexedvar(ZOOM_SWI,0);
        return;
    }

    setindexedvar(ZOOM_VALUE,zoom_value);
    //Draw all elements to customized screen,range z from min_int to player_max_z+500,x=0,y=0

    drawspriteq(zoom_scr,0,1,maxz+1,0,0);
    //drawspriteq(zoom_scr,0,openborconstant("MIN_INT"),openborconstant("MAX_INT"),0,0);
    //Set drawMethod
    changedrawmethod(NULL(),"reset",1);
    changedrawmethod(NULL(),"enabled",1);
    if(zoom_value>384)zoom_value=384;
    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);

    void vscreen = openborvariant("vscreen");

    drawspriteq(vscreen, 0, maxz+1,maxz+1, 0, 0);
    //drawspriteq(vscreen, 0, openborconstant("MIN_INT"),openborconstant("MAX_INT"), 0, 0);
    clearspriteq();
}
void main()
{
    mainLoop();
    setscriptvar(GLOBAL_LASTTICK,openborvariant("elapsed_time"));
}
void loadSaveData()
{
    void cc=loadSetting("save.s");
    setlocalvar("clearCount",cc);
    setglobalvar("clearCount",cc);
    setglobalvar("inv",loadSetting("inv.cfg"));
    setlocalvar("difficulty",1);
}
void loadTitleAni()
{
    void i,j;
    void titleani=getindexedvar(TITLE_ANI);
    if(!titleani)
    {
        test();
        loadSaveData();
        log("loading title background sprites...\n");
        titleani=array(TOTALANIFRAME);
        for(i=0;i<TOTALANIFRAME;i++)
        {
            set(titleani,i,loadsprite("data/bgs/wormhole/"+i+".gif"));
        }
        setindexedvar(TITLE_ANI,titleani);
        setlocalvar("tscr",allocscreen(400,64));
        setlocalvar("ttextm",loadsprite("data/bgs/ttextm.gif"));
        setlocalvar("ttextbgl",loadsprite("data/bgs/ttextbgl.gif"));
        setlocalvar("tscr1",allocscreen(400,64));

        setscriptvar(TITLE_TEXT,loadsprite("data/bgs/ttext.gif"));
        setlocalvar("ttextbg",loadsprite("data/bgs/ttextbg.gif"));
        log("loading cursors...\n");
        void handle;
        for(i=1;i<4;i++)
        {
            for(j=1;j<5;j++)
            {
                handle=loadsprite("data/bgs/cursor/p"+i+j+".gif");
                setlocalvar("cursor.p"+i+j,handle);
            }
        }
    }
    //executescript(getglobalvar("a"));
}
void inCompleteLoop()
{
    int i;
    void completeani=getindexedvar(COMPLETE_ANIM);
    if(!completeani)
    {
        log("loading complete background sprites...\n");
        completeani=array(111);
        for(i=0;i<111;i++)
        {
            set(completeani,i,loadsprite("data/bgs/complete/sc"+i+".gif"));
        }
        setindexedvar(COMPLETE_ANIM,completeani);
    }
    setdrawmethod(NULL(),1,256,256,0,0,0,1);
    drawsprite(get(completeani,openborvariant("elapsed_time")%1100/10),138,34,50,0);
    setdrawmethod(NULL(),0,256,256,0,0,0,0);
}
void inTitleLoop(int distitle)
{

    void loadingspr=getscriptvar(LOADINGSPR);
    if(!getscriptvar(TITLE_LOOPS)){
        loadingspr=loadsprite("data/bgs/loadinga.gif");
        drawsprite(loadingspr,0,0,COVER_Z);
        setscriptvar(LOADINGSPR,loadingspr);
        setscriptvar(TITLE_LOOPS,1);
    }else{
        if(loadingspr){
            free(loadingspr);
            setscriptvar(LOADINGSPR,NULL());
        }
        loadTitleAni();
        void titleani=getindexedvar(TITLE_ANI);
        void time=openborvariant("elapsed_time");
        void spr=get(titleani,time%(TOTALANIFRAME*10)/10);
        void scr=getlocalvar("tscr");
        void scr1=getlocalvar("tscr1");
        void clearCount,ptitle,difficulty;
        drawsprite(spr,0,0,1);
        if(distitle){
            drawspritetoscreen(getlocalvar("ttextbgl"),scr,time%10,0);
            drawspritetoscreen(getlocalvar("ttextbgl"),scr,time%10 - 600,0);
            drawspritetoscreen(getlocalvar("ttextm"),scr,0,0);
            drawspritetoscreen(getlocalvar("ttextbg"),scr1,-time%10,0);
            drawspritetoscreen(getlocalvar("ttextbg"),scr1,-time%10 + 500,0);
            drawspritetoscreen(getscriptvar(TITLE_TEXT),scr1,0,0);

            setdrawmethod(NULL(),1,256,256,0,0,0,0,0,0,0,0,1);
            drawscreen(scr,40,22,21);
            setdrawmethod(NULL(),1,256,256,0,0,0,1);
            drawscreen(scr1,40,22,21);
            setdrawmethod(NULL(),0,256,256,0,0,0,0);
            drawstring(400,258,0,"Version 2.41");
            clearCount=getglobalvar("clearCount");
            drawstring(18,258,0,"Clear Count "+clearCount);
            difficulty=getlocalvar("difficulty");
            if(difficulty==4){
                ptitle="Expert";
            }else if(difficulty==3){
                ptitle="Very Hard";
            }else if(difficulty==2){
                ptitle="Hard";
            }else if(difficulty==1){
                ptitle="Normal";
            }else{
                ptitle="Easy";
            }
           
            drawstring(182,258,1,"Difficulty "+ptitle);
            if(difficulty>0)drawstring(170,258,6,"B");
            if(difficulty<4)drawstring(304,258,6,"F");
        }
    }
}
void inSelectLoop()
{
    void i;
    void selectback=getlocalvar("select.bg");
    void selectbg1=getlocalvar("select.bg1");
    void selectbg2=getlocalvar("select.bg2");
    void selecttext=getlocalvar("select.text");
    void selecttext2=getlocalvar("select.text2");
    void selectg=getlocalvar("select.profile");
    void time=openborvariant("elapsed_time")*0.1;
    if(!selectg){
        selectg=loadsprite("data/bgs/cursor/selectg.gif");
        setlocalvar("select.profile",selectg);
    }
    if(!selecttext){
        selecttext=loadsprite("data/bgs/selectt1.gif");
        setlocalvar("select.text",selecttext);
    }
    if(!selecttext2){
        selecttext2=loadsprite("data/bgs/selectt2.gif");
        setlocalvar("select.text2",selecttext2);
    }
    //setdrawmethod(NULL(),1,256,256,0,0,0,1);
    drawsprite(selecttext,-time%363,2,7);
    drawsprite(selecttext,-time%363+363,2,7);
    drawsprite(selecttext,-time%363+726,2,7);
    drawsprite(selecttext2,time%538,112,7);
    drawsprite(selecttext2,time%538 - 538,112,7);
    //setdrawmethod(NULL(),0,256,256,0,0,0,0);

    //---------------------------------------------------------
    void swi=getlocalvar("selectg.swi");
    void scale=getlocalvar("selectg.scale");
    void rotate=getlocalvar("selectg.rotate");
    changedrawmethod(NULL(),"enabled",1);

    if(!swi){
        scale -= get_tick()*4;
        rotate+=get_tick()*5.8;
        if(scale<=256){
            scale=256;
            setlocalvar("selectg.swi",1);
            rotate=0;
            setlocalvar("selectg.rotate",0);
        }
        setlocalvar("selectg.scale",scale);
        setlocalvar("selectg.rotate",rotate);
        rotate%=360;
        changedrawmethod(NULL(),"rotate",rotate);
        changedrawmethod(NULL(),"scalex",scale);
        changedrawmethod(NULL(),"scaley",scale);
    }

    //changedrawmethod(NULL(),"watermode",1);  
    //changedrawmethod(NULL(),"amplitude",5);
    //changedrawmethod(NULL(),"wavelength",10);
    //changedrawmethod(NULL(),"wavespeed",1);
    //changedrawmethod(NULL(),"wavetime",openborvariant("elapsed_time"));

    changedrawmethod(NULL(),"centerx",174);
    changedrawmethod(NULL(),"centery",40);
    //changedrawmethod(NULL(),"watermode",3);
    //changedrawmethod(NULL(),"beginsize",1);
    //changedrawmethod(NULL(),"endsize",2);
    //changedrawmethod(NULL(),"perspective",1);
   
    //----------------------------------------------------------
    drawsprite(selectg,240,73,13);
    changedrawmethod(NULL(),"enabled",0);
    if(swi)
    {
        if(openborvariant("current_stage")<3)
        {
            drawbox(375,74,37,36,14,0,0);
        }
        if(getglobalvar("clearCount")<1)
        {
            drawbox(298,74,37,36,14,0,0);
        }
        if(swi)drawCursor();
    }
    inTitleLoop(0);
}

void drawCursor()
{
    void i;
    for(i=0;i<3;i++)drawCursor1(i,i*160+80);
}
void drawCursor1(void index,void xx)
{
    void x,y;
    if(position(getglobalvar("select."+xx+".name"),xx)){
        x=getlocalvar("cursor."+xx+".x");
        y=getlocalvar("cursor."+xx+".y");
        if(x!=NULL()&&y!=NULL()){
            drawDCursor(index,x,y);
        }
    }
}
void drawDCursor(void index,void x,void y)
{
    index++;
    void pind=(openborvariant("elapsed_time")%120/30);
    pind++;
    void str="cursor.p"+index+pind;
    setdrawmethod(NULL(),1,256,256,0,0,0,6);
    drawsprite(getlocalvar(str),x,y,51,0);
    setdrawmethod(NULL(),0,256,256,0,0,0,0);
    drawsprite(getlocalvar("cursor.p"+index+"1"),x,y,52,0);
}
void position(void name,void xp)
{
    void x,y;
    void y1=30,y2=69;
    if(name==NULL())return 0;
    if(name=="Ken"){
        x=62;y=y1;
    }else if(name=="Terry"){
        x=101;y=y1;
    }else if(name=="Guy"){
        x=139;y=y1;
    }else if(name=="Solid"){
        x=177;y=y1;
    }else if(name=="Alex"){
        x=215;y=y1;
    }else if(name=="Dudley"){
        x=254;y=y1;
    }else if(name=="Akuma"){
        x=292;y=y1;
    }else if(name=="Rock"){
        x=330;y=y1;
    }else if(name=="Lee"){
        x=369;y=y1;
    }else if(name=="Mai"){
        x=62;y=y2;
    }else if(name=="Maki"){
        x=101;y=y2;
    }else if(name=="Hibiki"){
        x=139;y=y2;
    }else if(name=="Leona"){
        x=177;y=y2;
    }else if(name=="Kula"){
        x=215;y=y2;
    }else if(name=="Shiki"){
        x=254;y=y2;
    }else if(name=="Ingrid"){
        x=292;y=y2;
    }else if(name=="Morrigan"){
        x=330;y=y2;
    }else if(name=="Sarah"){
        x=369;y=y2;
    }else{
        x=-59;y=-69;
    }
    setlocalvar("cursor."+xp+".x",x);
    setlocalvar("cursor."+xp+".y",y);
    return 1;
}
 
Part 2 Updated.c


Code:
void mainLoop()

{

    if(openborvariant("in_level"))

    {

        inGameLoop();

    }else if(openborvariant("in_titlescreen")){

        setlocalvar("selectg.swi",0);

        setlocalvar("selectg.scale",512);

        setlocalvar("selectg.rotate",0);

        difficultySelect();

        inTitleLoop(1);

    }else if(openborvariant("in_menuscreen")){

        difficultySelect();

        inTitleLoop(1);

        drawbox(0,0,480,272,3,0,6);

    }

    else if(openborvariant("in_selectscreen")){

        inSelectLoop();

        drawbox(0,0,480,272,3,0,6);

    }else if(openborvariant("in_showcomplete")){

        inCompleteLoop();

    }

}

void inGameLoop()

{  

    if(!getscriptvar(GAMEINIT))gameInit();

    if(openborvariant("game_paused"))

    {

        drawbox(0,0,480,272,3000,rgbcolor(0,0,0),6);

        return;

    }

   

    if(getindexedvar(ZOOM_SWI)){zoom();}else{}

    void i;

    void scr=getindexedvar(SCREEN);

    if(scr)clearscreen(scr);

    drawCurtain();

    turnWhite();

    lifeBar();

    afterImg();

    moveList();

    story();

    for(i=0;i<3;i++)disHp(i);

    if(scr)drawscreen(scr,0,0,2999,0);

}



void getPlayer(int index)

{

    return getplayerproperty(index,"ent");

}

void turnWhite()

{

    void dir=getindexedvar(WHITE);

   

    if(!dir){return;}else{}



    void tick=get_tick();

    void w=getglobalvar("white.alpha");

    if(!w)

    {

        if(dir==1)

        {

            w=0;

        }else{

            w=256;

        }

    }

   

    if(dir==1)

    {

        w+=tick*0.8;

    }else{

        w-=tick*0.8;

    }



    if(dir==1)

    {

        if(w>255)w=255;

    }else{

        if(w<0)w=0;

    }

    setglobalvar("white.alpha",w);

    drawbox(0,0,480,272,900,rgbcolor(w,w,w),1);

}

void pause()

{

    if(getindexedvar(PAUSE))return;

    spawnEnt("pause",0,0);

    setindexedvar(PAUSE,1);

}

void spawnEnt(void vName,void x,void z)

{

    clearspawnentry();

    setspawnentry("name", vName);

    void ent=spawn();

    changeentityproperty(ent,"position",x+openborvariant("xpos"),z+openborvariant("ypos"));

}

void gameInit()

{

    setglobalvar("difficulty",getlocalvar("difficulty"));

    setglobalvar("clearCount",getlocalvar("clearCount"));

    setscriptvar(GAMEINIT,1);

}

void drawCurtain()

{

    long width,tick,w,i;

    if(getindexedvar(CURTAIN)){

        if(getindexedvar(ENGAGE_SHOW)&&!getindexedvar(STORY_ENT)){

            if(!isFullScreenStory())spawnEnt("engage2",0,276);

            setindexedvar(ENGAGE_SHOW,0);

        }

    }else{

        tick=get_tick();

        w=getglobalvar("curtain.width");

        if(!w)w=0;

        w+=tick*0.8;

        setglobalvar("curtain.width",w);

        drawbox(0,0,480,272,COVER_Z,rgbcolor(w,w,w),2);

        if(w>254){

            setindexedvar(CURTAIN,1);

            setindexedvar(PAUSE,0);

        }else{

            pause();

        }

    }

}

long getHpColor(long hp)

{

    if(hp<=100){

        return HP1;

    }else if(hp>100){

        return HP2;

    }else if(hp>200){

        return HP3;

    }else if(hp>300){

        return HP4;

    }else if(hp>400){

        return HP5;

    }else if(hp>500){

        return HP6;

    }else if(hp>600){

        return HP7;

    }else if(hp>700){

        return HP8;

    }else if(hp>800){

        return HP9;

    }

}

void drawHpBarCount(void scr,void ind,void hp,void startx)

{

    void hp_count=hp*0.01;

    if(hp_count>=0)

        hp_count%=++hp_count;

    else

        hp_count=0;

    if(hp_count)drawstringtoscreen(scr,startx +83+ind*160,30,7,"x"+hp_count);



}

void getEnemyOldHp(void enemy)

{

    void enemyoldhp=getentityvar(enemy,ENT_OLDHP);

    if(enemyoldhp==NULL()){

        enemyoldhp=getentityproperty(enemy,"maxhealth");

        setentityvar(enemy,ENT_OLDHP,enemyoldhp);

    }

    return enemyoldhp;

}

void drawPlayerHp(void ent,void startx,void ind)

{

    void    hp        =    getentityproperty(ent,"health");

    void    pOldHp    =    getentityvar(ent,ENT_OLDHP);

    if (pOldHp==NULL())

    {

        pOldHp=getentityproperty(ent,"maxhealth");

        setentityvar(ent,ENT_OLDHP,pOldHp);

    }

    if(hp<0) hp=0; else {}

    void damage=pOldHp - hp;

    drawBar(startx+ind*160,999,hp,3,HP1);

    if(damage>0)

    {

        drawBar(startx+ind*160+hp,999,damage,3,999);

        pOldHp-=get_tick()*0.1;

        setentityvar(ent,ENT_OLDHP,pOldHp);

    }else if(damage<0){

        setentityvar(ent,ENT_OLDHP,hp);

    }

}

void disHp(void ind)

{

    void    ent        =    getplayerproperty(ind,"ent");

    if        (!ent)return;else{}

    void    scr        =    getindexedvar(SCREEN);

    void    startx    =    41;

    void    enemy    =    getentityproperty(ent,"opponent");

    long    hpcolor1,i,damage,damagex,hp_count,hp;



    drawPlayerHp(ent,startx,ind);



    if(enemy&&!getentityproperty(enemy,"nolife"))

    {

        void realhp=getentityproperty(enemy,"health");

        void enemyoldhp=getEnemyOldHp(enemy);

        hp=realhp;

        startx=37;

        drawHpBarCount(scr,ind,hp,startx);

        //Calculate the damage

        damage=enemyoldhp - realhp;

        //Get hp color and draw current hp

        hpcolor1=getHpColor(hp);

        if(hp>100)hp%=100;

        if(hp<0){

            damage+=hp;

            if(damage<0)damage=0;

            hp=0;

        }

        drawBar(startx+ind*160,999,hp,3,hpcolor1);

        //draw Enemy's Damage

        if(hp+damage>100)damage=100 - hp;

        damagex=hp+startx+ind*160;

        drawBar(damagex,25,damage,3,999);

        //

        void lasttick=getscriptvar(GLOBAL_LASTTICK);

        void am=lasttick - getentityvar(enemy,HP_TIME);

        if(am>0)

        {

            enemyoldhp-=am*0.5;

            setentityvar(enemy,HP_TIME,lasttick);

            if(enemyoldhp<realhp)enemyoldhp=realhp;

            setentityvar(enemy,ENT_OLDHP,enemyoldhp);

        }

    }else{}



    //drawMp

    void mp=getentityproperty(ent,"mp")*0;

    void drawF;

   

    if(mp==75){

        drawF=75;

    }else if(mp>=50){

        drawF=50;

    }else if(mp>=25){

        drawF=25;

    }else{

        drawF=0;

    }



    void drawmpcolor;

    if(mp>50){

        if(drawF==75){

            drawmpcolor=MPCOLOR1;

        }else{

            drawmpcolor=MPCOLOR2;

        }

        startx=83+ind*160;

        drawBar(startx,999,mp-50,2,drawmpcolor);

    }



    if(mp>50)mp=50;

    if(mp>25){

        if(drawF>=50){

            drawmpcolor=MPCOLOR1;

        }else{

            drawmpcolor=MPCOLOR2;

        }

        startx=58+ind*160;

        drawBar(startx,999,mp-25,3,drawmpcolor);

    }

    if(mp>25)mp=25;

    if(drawF>=25){

        drawmpcolor=MPCOLOR1;

    }else{

        drawmpcolor=MPCOLOR2;

    }

    startx=34+ind*160;

    drawBar(startx,29,mp,4,drawmpcolor);

    disMpFlow(ind,drawF);

}



void drawBar(void x,void y,void width,void height,void color)

{

    if(width<1){return;}else{}

    int i;

    void scr=getindexedvar(SCREEN);

    for(i=0;i<height;i++)

    {

        drawboxtoscreen(scr,x-i,y+i,width,1,color,0);

    }

}



void disMpFlow(void ind,long mp)

{

    if (!mp){return;}else{}

    void scr=getindexedvar(SCREEN);

    long pos=getlocalvar("mppos."+ind);

    long i,x,o;

    if(pos==NULL())pos=0;



    for(i=0;i<11;i++)

    {

        x=pos-i;

        if(x>50){

            o=2;

        }else if(x>25){

            o=1;

        }else{

            o=0;

        }

        if(x>=0&&x<mp-1){

            drawlinetoscreen(scr,34+ind*160+x,29,34+ind*160+x-3+o,32-o,rgbcolor((12-i)*20,233+(22-i*2),(12-i)*20),0);

        }

    }

    pos+=get_tick()*0.2;

    if(pos>100)pos=0;

    setlocalvar("mppos."+ind,pos);

}

void clear()

{

    void scr=getindexedvar(SCREEN);

    void cursor=getlocalvar("cursor.0");

    void selecttext=getlocalvar("select.text");

    void selecttext2=getlocalvar("select.text2");

    void tscr=getlocalvar("tscr");

    void tscr1=getlocalvar("tscr1");

    void ttextm=getlocalvar("ttextm");

    void ttextbgl=getlocalvar("ttextbgl");

    void ttextbg=getlocalvar("ttextbg");

    void t,img,i,handle,j;

    log("free title background sprites...\n");

    void titleani=getindexedvar(TITLE_ANI);

    if(titleani){

        for(i=0;i<TOTALANIFRAME;i++)

        {

            free(get(titleani,i));

        }

        free(titleani);

    }

    log("free title text sprites...\n");

    free(getscriptvar(TITLE_TEXT));





    for(i=1;i<4;i++)

    {

        for(j=1;j<5;j++)

        {

            handle=getlocalvar("cursor.p"+i+j);

            if(handle)free(handle);

        }

    }



    if(scr){

        log("free global screen:"+scr+"\n");

        free(scr);

    }

    if(selecttext){

        log("free select text1:"+selecttext+"\n");

        free(selecttext);

    }

    if(selecttext2){

        log("free select text2:"+selecttext2+"\n");

        free(selecttext2);

    }



    if(tscr){

        log("free screen1:"+tscr+"\n");

        free(tscr);

    }

   

    if(tscr1){

        log("free screen2:"+tscr1+"\n");

        free(tscr1);

    }

    if(ttextm){

        log("free text mask:"+ttextm+"\n");

        free(ttextm);

    }

    if(ttextbgl){

        log("free text bg1:"+ttextbgl+"\n");

        free(ttextbgl);

    }

    if(ttextbg){

        log("free text bg2:"+ttextbg+"\n");

        free(ttextbg);

    }



    log("free trailer arrays\n");

    for(i=1;i<=trailermax; i++)

    {

        img=getglobalvar("trailer."+i);

        if(img){

            free(img);

        }

    }



    void completeani=getindexedvar(COMPLETE_ANIM);

    if(completeani)

    {

        log("free complete background sprites\n");

        int i;

        for(i=0;i<111;i++)

        {

            free(get(completeani,i));

        }

        free(completeani);

    }

}

void difficultySelect()

{

    void left1    =    playerkeys(0,1,"moveleft");

    void right1    =    playerkeys(0,1,"moveright");

    void difficulty=getlocalvar("difficulty");

    if(left1)

    {

        difficulty--;

        if(difficulty<0)difficulty=0;

        setlocalvar("difficulty",difficulty);

    }

    if(right1)

    {

        difficulty++;

        if(difficulty>4)difficulty=4;

        setlocalvar("difficulty",difficulty);

    }

}

#import "data/scripts/updated/main_misc.c"



void main()

{//Start all tasks



    //TITLE SCREEN, CLEAR AND START A LOT OF VARIABLES IF "NULL()"

    if(openborvariant("in_titlescreen")){

       

        //SCRIPT USED TO CLEAR ALL VARIABLES AND ASSETS

        if(getglobalvar("clearAll") != NULL()){clearlocalvar();clearglobalvar();}

       

    }

   

    //MENU SCREEN, SET THE "CLEARALL" FLAG TO 1

    if(openborvariant("in_menuscreen")){



        //WORKS WITH "CLEARALL" FUNCTION

        if(getglobalvar("clearAll") == NULL()){setglobalvar("clearAll", 1);}

    }

   

    //IN LEVEL

    if(openborvariant("in_level")){

        //levelZoom();

    }

}
 
I've made a quick read and here's what I understand from the log:
1. It has multiple warnings about lines in data/scripts/define.h.
2. It has multiple error messages about drawsprite function which basically says that each of them couldn't find the sprite to be drawn.

I couldn't tell specifically why #2 occurred. I discovered multiple drawsprite functions in quoted updated.c above though.

I don't know how to solve this issue and even if I were, it might require back n forth trial n error to figure out the cause and to solve each error.
However I have a suggestion: if you only need animated title screen, there are other methods to create that. IOW you could ditch this buggy script system and use other system instead.
One of template modules I've uploaded here has animated title : Map +++. If that's too complex , you can try the other module I've mentioned in this thread.
 
Back
Top Bottom