X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Fxcroll.c;h=b9e928430425082927d17516a70e6dfb1f73bf10;hb=8db9019df22bf792ea02096dec8c3d862fa00155;hp=c371b40f10ae23599c9f10a0f0f4529ccc60ab66;hpb=e80315c09ca568b5ad71305006185496397eb00e;p=16.git diff --git a/src/xcroll.c b/src/xcroll.c index c371b40f..b9e92843 100755 --- a/src/xcroll.c +++ b/src/xcroll.c @@ -22,14 +22,16 @@ #include "src/lib/scroll16.h" #include "src/lib/16_timer.h" -#include "src/lib/16render.h" -#include "src/lib/16_dbg.h" -#include "src/lib/16_sd.h" +//#include "src/lib/16_dbg.h" + +#ifdef __DEBUG__ +boolean + dbg_nointest=1; +#endif #define FADE //#define NOMAPLOAD -//map_view_t mv[4]; static map_t map; float t; @@ -38,64 +40,41 @@ boolean panswitch=0,baka=0; //extern boolean pageflipflop=1; extern boolean pagenorendermap; //default: 0 unsigned int i; -struct glob_game_vars *ggvv; #ifdef FADE //static word paloffset=0; #endif byte *ptr; -memptr pal; +//memptr pal; +boolean spriteswitch=0; #define FILENAME_1 "data/spri/chikyuu.vrs" #define FILENAME_1P "data/spri/chikyuu.pal" #define FILENAME_2 "data/spri/me.vrs" #define FILENAME_2P "data/spri/me.pal" - -static void (interrupt *old_irq0)(); -// WARNING: subroutine call in interrupt handler. make sure you compile with -zu flag for large/compact memory models -void interrupt irq0() -{ - ggvv->ca.sd.irq0_ticks++; - if ((ggvv->ca.sd.irq0_cnt += ggvv->ca.sd.irq0_add) >= ggvv->ca.sd.irq0_max) { - ggvv->ca.sd.irq0_cnt -= ggvv->ca.sd.irq0_max; - old_irq0(); - } - else { - p8259_OCW2(0,P8259_OCW2_NON_SPECIFIC_EOI); - } -} +//#define FILENAME_3 "data/spri/chistnd.vrl" void main(int argc, char *argv[]) { static global_game_variables_t gvar; - unsigned long tickrate = 700; - unsigned long ptick; - unsigned long adv; -// sword bakapee; -// if(argv[1]) bakapee = atoi(argv[1]); -// else bakapee = 1; - //char *bakapee1,*bakapee1p; - char bakapee1[64] = FILENAME_1; - char bakapee1p[64] = FILENAME_1P; + struct glob_game_vars *ggvv; + +// static entity_t enti; + + char bakapee[64] = FILENAME_1; + char bakapeep[64] = FILENAME_1P; +// char bakapee3[64] = FILENAME_3; Startup16(&gvar); - if (!SD_imf_load_music("data/02.imf", &gvar)){ printf("Failed to load IMF Music\n"); return; } -// bakapee1=mALLoc(64); -// bakapee1p=mALLoc(64); ggvv=&gvar; + // input! + IN_Default(0, &gvar.player[0],ctrl_Keyboard1, &gvar); + if (argc >= 2) { -/* if (argc < 2) { - //fprintf(stderr,"drawvrl \n palette file optional\n"); - bakapee1 = FILENAME_1; - bakapee1p = FILENAME_1P; - - }else{ - if(argv[1]) bakapee1 = argv[1]; - if(argv[2]) bakapee1p = argv[2];*/ - if(argv[1]){ strcpy(bakapee1, argv[1]); - if(argv[2]) strcpy(bakapee1p, argv[2]); } + if(argv[1]){ strcpy(bakapee, argv[1]); + if(argv[2]) strcpy(bakapeep, argv[2]); } } // OK, this one takes hellova time and needs to be done in farmalloc or MM_... @@ -104,7 +83,6 @@ void main(int argc, char *argv[]) // create the map // fprintf(stderr, "testing map load~ "); - CA_loadmap("data/test.map", &map, &gvar); #ifndef NOMAPLOAD chkmap(&map, 0); @@ -116,10 +94,9 @@ void main(int argc, char *argv[]) //initMap(&map); #endif // data - VRS_LoadVRS(bakapee1, &gvar.player[0].enti, &gvar); - - // input! - IN_Default(0, &gvar.player[0],ctrl_Keyboard1, &gvar); + printf("loading vrs "); + VRS_LoadVRS(bakapee, &gvar.player[0].enti, &gvar); printf("ok\n"); + IN_StartAck (&gvar); while (!IN_CheckAck (&gvar)){} // save the palette #ifdef FADE @@ -139,7 +116,7 @@ void main(int argc, char *argv[]) //printf("1: %d\n", paloffset); map.tiles->data->offset=(paloffset/3); modexPalUpdate(map.tiles->data, &paloffset, 0, 0);*/ - VL_LoadPalFile(bakapee1p, &gvar.video.palette, &gvar); + VL_LoadPalFile(bakapeep, &gvar.video.palette, &gvar); //VL_LoadPalFile("data/default.pal", &gvar.video.palette); #ifdef FADE @@ -151,31 +128,23 @@ void main(int argc, char *argv[]) // setup camera and screen~ modexHiganbanaPageSetup(&gvar); ZC_MVSetup(&gvar.mv, &map, &gvar); -/* + #ifdef FADE modexFadeOn(4, &gvar.video.palette); #endif - IN_StartAck (&gvar); MM_ShowMemory(&gvar); while (!IN_CheckAck (&gvar)){} + +//0000 IN_StartAck (&gvar); MM_ShowMemory(&gvar); while (!IN_CheckAck (&gvar)){} #ifdef FADE modexPalBlack(); //so player will not see loadings~ #endif -*/ + // set up paging //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen mapGoTo(&gvar.mv, 0, 0); - ZC_PlayerXYpos(0, 0, &gvar.player, &gvar.mv, 0, 1); + ZC_PlayerXYpos(0, 0, &gvar.player[0], &gvar.mv, 1); EN_initPlayer(&gvar.player[0], &gvar.video); //print_anim_ids(gvar.player[0].enti.spri); - SD_Initimf(&gvar); - - write_8254_system_timer(T8254_REF_CLOCK_HZ / tickrate); - old_irq0 = _dos_getvect(8);/*IRQ0*/ - _dos_setvect(8,irq0); - -// _cli(); - gvar.ca.sd.irq0_ticks = ptick = 0; -// _sti(); if (gvar.video.sprifilei == -1) { #ifdef FADE @@ -191,6 +160,10 @@ void main(int argc, char *argv[]) gvar.video.page[0].tlx=gvar.mv[0].tx*TILEWH; gvar.video.page[0].tly=gvar.mv[0].ty*TILEWH; +#ifdef OLDWALKSHOWPAGESTUFF + VL_ShowPage(&(gvar.video.page[gvar.video.sp]), gvar.kurokku.fpscap, 0); +#endif + shinku(&gvar); //modexpdump(gvar.mv[0].page); #ifdef FADE @@ -198,15 +171,6 @@ void main(int argc, char *argv[]) #endif while(!gvar.in.inst->Keyboard[sc_Escape] && gvar.player[0].enti.hp>0) { -// _cli(); - adv = gvar.ca.sd.irq0_ticks - ptick; - if (adv >= 100UL) adv = 100UL; - ptick = gvar.ca.sd.irq0_ticks; -// _sti(); - while (adv != 0) { - SD_imf_tick(&gvar); - adv--; - } gvar.video.page[0].tlx=gvar.mv[0].tx*TILEWH; gvar.video.page[0].tly=gvar.mv[0].ty*TILEWH; shinku(&gvar); @@ -218,7 +182,8 @@ void main(int argc, char *argv[]) IN_ReadControl(&gvar.player[0], &gvar); if(!panswitch){ //ZC_walk2(gvar.player[0].ent, mv); - ZC_walk(&gvar.mv, &gvar.player, 0); + //ZC_walk(&gvar.mv, &gvar.player, 0); + ZC_walk(&gvar, 0); }else{ TAIL_PANKEYFUNZC; //printf(" gvar.player[0].enti.q: %d", gvar.player[0].enti.q); printf(" gvar.player[0].d: %d\n", gvar.player[0].d); @@ -237,41 +202,60 @@ void main(int argc, char *argv[]) } if(gvar.player[0].enti.q == (TILEWH/(gvar.player[0].enti.speed))+1 && gvar.player[0].info.dir != 2 && (gvar.player[0].enti.triggerx == 5 && gvar.player[0].enti.triggery == 5)){ gvar.player[0].enti.hp--; } //debugging binds! - - if(gvar.in.inst->Keyboard[24]){ VL_modexPalScramble(&gvar.video.palette); /*paloffset=0;*/ modexpdump(gvar.mv[0].page); IN_UserInput(1, &gvar); } //o - if(gvar.in.inst->Keyboard[22]){ VL_modexPalScramble(&gvar.video.palette); } //u +// if(gvar.in.inst->Keyboard[24]){ VL_modexPalScramble(&gvar.video.palette); /*paloffset=0;*/ VL_LoadPalFileCore(&gvar.video.palette, &gvar); modexpdump(gvar.mv[0].page); IN_UserInput(1, &gvar); } //o + if(gvar.in.inst->Keyboard[22]){ VL_modexPalScramble(&gvar.video.palette); VL_LoadPalFileCore(&gvar.video.palette, &gvar); } //u TAIL_FUNCTIONKEYFUNCTIONS TAIL_FUNCTIONKEYDRAWJUNK if(gvar.in.inst->Keyboard[sc_L]){ modexClearRegion(&gvar.video.page[0], gvar.player[0].enti.x, gvar.player[0].enti.y, 16, 16, 1); } - if(gvar.in.inst->Keyboard[sc_J] || gvar.in.inst->Keyboard[sc_K]) + +//=============================================================================== +#if 0 + if(gvar.in.inst->Keyboard[sc_BackSlash]){ + VRS_ReadVRL(bakapee3, &gvar.player[0].enti, &gvar); + DrawVRL( + gvar.player[0].enti.x, + gvar.player[0].enti.y, + gvar.player[0].enti.spri.sprite_vrl_cont.vrl_header, + gvar.player[0].enti.spri.sprite_vrl_cont.line_offsets, + gvar.player[0].enti.spri.sprite_vrl_cont.buffer + sizeof(struct vrl1_vgax_header), + gvar.player[0].enti.spri.sprite_vrl_cont.data_size + ); while (!IN_CheckAck (&gvar)){} + VRS_ReadVRS(bakapee, &gvar.player[0].enti, &gvar); + IN_UserInput(1, &gvar); } +#endif +//=============================================================================== + + if(gvar.in.inst->Keyboard[sc_J])// || gvar.in.inst->Keyboard[sc_K]) { - if(gvar.in.inst->Keyboard[sc_J]) + if(spriteswitch)//gvar.in.inst->Keyboard[sc_J]) { -// bakapee1=FILENAME_1; -// bakapee1p=FILENAME_1P; - strcpy(bakapee1, FILENAME_1); - strcpy(bakapee1p, FILENAME_1P); + strcpy(bakapee, FILENAME_1); + strcpy(bakapeep, FILENAME_1P); gvar.player[0].enti.overdraww=0; } - if(gvar.in.inst->Keyboard[sc_K]) + else//if(gvar.in.inst->Keyboard[sc_K]) { -// bakapee1=FILENAME_2; -// bakapee1p=FILENAME_2P; - strcpy(bakapee1, FILENAME_2); - strcpy(bakapee1p, FILENAME_2P); + strcpy(bakapee, FILENAME_2); + strcpy(bakapeep, FILENAME_2P); gvar.player[0].enti.overdraww=2; } - //read_vrs(&gvar, bakapee1, gvar.player[0].enti.spri->spritesheet); - VRS_ReadVRS(bakapee1, &gvar.player[0].enti, &gvar); - VL_LoadPalFile(bakapee1p, &gvar.video.palette, &gvar); + spriteswitch=!spriteswitch; + + //read_vrs(&gvar, bakapee, gvar.player[0].enti.spri->spritesheet); + VRS_ReadVRS(bakapee, &gvar.player[0].enti, &gvar); + VL_LoadPalFile(bakapeep, &gvar.video.palette, &gvar); + ZC_animatePlayer(&gvar.mv, &gvar.player, 0); + IN_UserInput(1, &gvar); }//JK -#ifdef FADE - if(gvar.in.inst->Keyboard[10]){ modexPalOverscan(rand()%56); modexPalUpdate(gvar.video.dpal); IN_UserInput(1, &gvar); } -#endif - if(gvar.in.inst->Keyboard[sc_R]){ modexPalOverscan(rand()%56); } //r +//#ifdef FADE +// if(gvar.in.inst->Keyboard[10]){ modexPalOverscan(rand()%56); modexPalUpdate(gvar.video.dpal); IN_UserInput(1, &gvar); } +//#endif + if(gvar.in.inst->Keyboard[sc_R]){ VL_modexPalOverscan(&gvar.video.palette, rand()%32); } //r + - if((gvar.player[0].enti.q==1) && !(gvar.player[0].enti.x%TILEWH==0 && gvar.player[0].enti.y%TILEWH==0)) Quit (&gvar, "PLAYER OFF THE RAILS!");//break; //incase things go out of sync! + //if((gvar.player[0].enti.q==1) && !(gvar.player[0].enti.x%TILEWH==0 && gvar.player[0].enti.y%TILEWH==0)) Quit (&gvar, "PLAYER OFF THE RAILS!");//break; //incase things go out of sync! + ZC_GirdChk(&gvar, &gvar.player[0]); } /* fade back to text mode */ @@ -281,11 +265,6 @@ void main(int argc, char *argv[]) modexSavePalFile("data/g.pal", &gvar.video.palette); modexFadeOff(4, &gvar.video.palette); #endif - SD_imf_free_music(&gvar); - SD_adlib_shut_up(); - shutdown_adlib(); - _dos_setvect(8,old_irq0); - write_8254_system_timer(0);/* back to normal 18.2Hz */ Shutdown16(&gvar); printf("\nProject 16 xcroll.exe. This is just a test file!\n"); printf("version %s\n", VERSION);