]> 4ch.mooo.com Git - 16.git/blobdiff - src/zcroll.c
reverted input and stuff back... walk() is broken badly
[16.git] / src / zcroll.c
index 10f87f6683df713bc9ea5052df767d8dfa53c356..b08fcf7a77a4df14d64da31e538752fc6e781fbc 100755 (executable)
 #include "src/lib/16_dbg.h"\r
 \r
 #define MODEXZ\r
-boolean dbg_noplayerinpu=1;\r
+//boolean dbg_noplayerinpu=1;\r
 \r
 //TODO: known issues the array dependent mv stuff and player arrays\r
 global_game_variables_t gvar;\r
 static map_t map;\r
-player_t *player;\r
-map_view_t *mv;\r
+player_t player[MaxPlayers];\r
+map_view_t mv[4];\r
 float t;\r
 sword bakapee;\r
 pan_t pan;\r
@@ -64,10 +64,9 @@ void main(int argc, char *argv[])
        pan.pn=0;\r
        // OK, this one takes hellova time and needs to be done in farmalloc or MM_...\r
        //TODO: USE MM AND CA AND PM WWWWWWWW\r
-       player = malloc(sizeof(player_t));\r
-       player->ent = malloc(sizeof(entity_t));\r
-       player->ent->spri = malloc(sizeof(struct sprite));\r
-       player->ent->spri->spritesheet = malloc(sizeof(struct vrs_container));\r
+       player[0].ent = malloc(sizeof(entity_t));\r
+       player[0].ent->spri = malloc(sizeof(struct sprite));\r
+       player[0].ent->spri->spritesheet = malloc(sizeof(struct vrs_container));\r
 \r
        // create the map\r
        fprintf(stderr, "testing map load~      ");\r
@@ -78,12 +77,12 @@ void main(int argc, char *argv[])
 \r
        // data\r
        printf("loading sprite\n");\r
-       read_vrs(&gvar, "data/spri/chikyuu.vrs", player->ent->spri->spritesheet); printf("sprite loaded\n");\r
+       read_vrs(&gvar, "data/spri/chikyuu.vrs", player[0].ent->spri->spritesheet); printf("sprite loaded\n");\r
 \r
        //      input!\r
 if(!dbg_noplayerinpu)\r
 {\r
-       IN_Default(0, player,ctrl_Joystick); printf("IN_defaulted\n");\r
+       IN_Default(0, &player,ctrl_Keyboard1); printf("IN_defaulted\n");\r
 }\r
 \r
        // save the palette\r
@@ -112,29 +111,29 @@ if(dbg_noplayerinpu)
 {\r
        //sprintf(&gvar.pee, "press a key for video setup");\r
        strcpy(global_temp_status_text, "press a key for video setup");\r
-       modexprint(mv->page, 0, 64, 1, 7, 0, global_temp_status_text);\r
+       modexprint(mv[0].page, 0, 64, 1, 7, 0, global_temp_status_text);\r
        getch();\r
 }\r
        modexHiganbanaPageSetup(&gvar.video);\r
-       mv->page = &gvar.video.page[0];\r
-       mv->map = ↦\r
-       mv->video = &gvar.video;\r
-       mv->pan = &pan;\r
-       player->ent->spri->x = player->ent->spri->y = 20;\r
+       mv[0].page = &gvar.video.page[0];\r
+       mv[0].map = ↦\r
+       mv[0].video = &gvar.video;\r
+       mv[0].pan       = &pan;\r
+       player[0].ent->spri->x = player[0].ent->spri->y = 20;\r
 \r
        // set up paging\r
        //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen\r
-       mapGoTo(mv, 0, 0);\r
+       mapGoTo(&mv, 0, 0);\r
 #endif\r
 \r
        //TODO: put player in starting position of spot\r
        //default player position on the viewable map\r
-       player->tx = mv->tx + mv->page->tilemidposscreenx;\r
-       player->ty = mv->ty + mv->page->tilemidposscreeny;\r
-       IN_initplayer(player);  printf("player inited\n");\r
+       player[0].tx = mv[0].tx + mv[0].page->tilemidposscreenx;\r
+       player[0].ty = mv[0].ty + mv[0].page->tilemidposscreeny;\r
+       IN_initplayer(&player, 0);      printf("player inited\n");\r
 \r
-       i = set_anim_by_id(player->ent->spri, 11);\r
-       print_anim_ids(player->ent->spri);\r
+       i = set_anim_by_id(player[0].ent->spri, 11);\r
+       print_anim_ids(player[0].ent->spri);\r
        if (i == -1)\r
        {\r
 #ifdef FADE\r
@@ -148,31 +147,32 @@ if(dbg_noplayerinpu)
 #endif\r
        exit(-4);\r
        }\r
-       //animate_spri(&(player->ent->spri));\r
+       //animate_spri(&(player[0].ent->spri));\r
        printf("spri ok\n");\r
 \r
-       modexShowPage(mv->page);//!(gvar.video.p)\r
+       modexShowPage(mv[0].page);//!(gvar.video.p)\r
        shinku_fps_indicator_page = 0; // we're on page 1 now, shinku(). follow along please or it will not be visible.\r
 #ifdef FADE\r
        modexFadeOn(4, gpal);\r
 #endif\r
        printf("LOOP\n");\r
        if(!dbg_noplayerinpu)\r
-       while(!IN_KeyDown(sc_Escape) && player->hp>0)\r
+       while(!IN_KeyDown(sc_Escape) && player[0].hp>0)\r
        {\r
                shinku(&gvar);\r
                //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square\r
                //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction\r
-               //when player->tx or player->ty == 0 or player->tx == 20 or player->ty == 15 then stop because that is edge of map and you do not want to walk of the map\r
+               //when player[0].tx or player[0].ty == 0 or player[0].tx == 20 or player[0].ty == 15 then stop because that is edge of map and you do not want to walk of the map\r
 \r
                //player movement\r
-               IN_ReadControl(player);\r
+               IN_ReadControl(0, &player);\r
                if(!panswitch){\r
-                       walk(player->ent, mv);\r
+                       walk(player[0].ent, mv);\r
+                       //walk(mv, &player, 0);\r
                }\r
 \r
                //the scripting stuff....\r
-/*             if(((mv->map->data[(player->triggerx-1)+(map.width*(player->triggery-1))] == 0) && IN_KeyDown(0x1C))||(player->tx == 5 && player->ty == 5))\r
+/*             if(((mv[0].map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))] == 0) && IN_KeyDown(0x1C))||(player[0].tx == 5 && player[0].ty == 5))\r
                {\r
                        short i;\r
                        for(i=800; i>=400; i--)\r
@@ -181,14 +181,14 @@ if(dbg_noplayerinpu)
                        }\r
                        nosound();\r
                }\r
-               if(player->q == (TILEWH/(player->speed))+1 && player->info.dir != 2 && (player->triggerx == 5 && player->triggery == 5)){ player->hp--; }\r
+               if(player[0].q == (TILEWH/(player[0].speed))+1 && player[0].info.dir != 2 && (player[0].triggerx == 5 && player[0].triggery == 5)){ player[0].hp--; }\r
 */             //debugging binds!\r
-               if(IN_KeyDown(2)){ modexShowPage(mv->page); pan.pn=0; }\r
-               if(IN_KeyDown(25)){ modexpdump(mv->page);\r
+               if(IN_KeyDown(2)){ modexShowPage(mv[0].page); pan.pn=0; }\r
+               if(IN_KeyDown(25)){ modexpdump(mv[0].page);\r
                         IN_UserInput(1,1);\r
                }       //p\r
 #ifdef FADE\r
-               if(IN_KeyDown(24)){ modexPalUpdate0(gpal); paloffset=0; modexpdump(mv->page); IN_UserInput(1,1); }\r
+               if(IN_KeyDown(24)){ modexPalUpdate0(gpal); paloffset=0; modexpdump(mv[0].page); IN_UserInput(1,1); }\r
                if(IN_KeyDown(22)){\r
                        printf("2paloffset      =       %d\n", paloffset/3);\r
                        IN_UserInput(1,1);\r
@@ -209,12 +209,12 @@ if(dbg_noplayerinpu)
                }\r
                if(IN_KeyDown(67))      //f9\r
                {\r
-                       modexClearRegion(mv->page, 0, 0, mv->page->width, mv->page->height, 2);\r
+                       modexClearRegion(mv[0].page, 0, 0, mv[0].page->width, mv[0].page->height, 2);\r
                }\r
                if(IN_KeyDown(66))      //f8\r
                {\r
-       //              modexDrawSprite(mv->page, 16, 16, p);\r
-                       modexDrawSprite(mv->page, 32+48, 16, (player->data));\r
+       //              modexDrawSprite(mv[0].page, 16, 16, p);\r
+                       modexDrawSprite(mv[0].page, 32+48, 16, (player[0].data));\r
                }\r
                //TODO fmemtest into page\r
                /*if(IN_KeyDown(4+1))   //4\r
@@ -229,8 +229,8 @@ if(dbg_noplayerinpu)
                if(IN_KeyDown(10)){ modexPalOverscan(rand()%56); modexPalUpdate1(dpal); IN_UserInput(1,1); }\r
                //if(IN_KeyDown(11)){ modexPalOverscan(15); }\r
 #endif\r
-               if((player->q==1) && !(player->x%TILEWH==0 && player->y%TILEWH==0)) break;      //incase things go out of sync!\r
-               player->hp = 0;\r
+               if((player[0].q==1) && !(player[0].x%TILEWH==0 && player[0].y%TILEWH==0)) break;        //incase things go out of sync!\r
+               player[0].hp = 0;\r
        }\r
 \r
        else\r
@@ -250,18 +250,18 @@ if(dbg_noplayerinpu)
        Shutdown16(&gvar);\r
        printf("\nProject 16 zcroll.exe. This is just a test file!\n");\r
        printf("version %s\n", VERSION);\r
-       printf("tx: %d  ", mv->tx);\r
-       printf("ty: %d\n", mv->ty);\r
+       printf("tx: %d  ", mv[0].tx);\r
+       printf("ty: %d\n", mv[0].ty);\r
        printf("\n");\r
        printf("player vars:\n");\r
-       printf("        x: %d", player->x); printf("    y: %d\n", player->y);\r
-       //if(player->hp==0) printf("%d wwww\n", player->y+8);\r
-       //else printf("\nplayer->y: %d\n", player->y);\r
-       printf("        tx: %d", player->tx); printf("  ty: %d\n", player->ty);\r
-       printf("        triggx: %d", player->triggerx); printf("        triggy: %d\n", player->triggery);\r
-       printf("        hp: %d", (player->hp)); printf("        q: %d", player->q);     printf("        player.info.dir: %d", player->info.dir);        printf("        player.d: %d ", player->d);\r
-               printf("        pdir=%d\n", player->pdir);\r
-       printf("        tile data value at player trigger position: %d\n\n", mv->map->data[(player->triggerx-1)+(map.width*(player->triggery-1))]);\r
+       printf("        x: %d", player[0].x); printf("  y: %d\n", player[0].y);\r
+       //if(player[0].hp==0) printf("%d wwww\n", player[0].y+8);\r
+       //else printf("\nplayer[0].y: %d\n", player[0].y);\r
+       printf("        tx: %d", player[0].tx); printf("        ty: %d\n", player[0].ty);\r
+       printf("        triggx: %d", player[0].triggerx); printf("      triggy: %d\n", player[0].triggery);\r
+       printf("        hp: %d", (player[0].hp));       printf("        q: %d", player[0].q);   printf("        player.info.dir: %d", player[0].info.dir);      printf("        player.d: %d ", player[0].d);\r
+               printf("        pdir=%d\n", player[0].pdir);\r
+       printf("        tile data value at player trigger position: %d\n\n", mv[0].map->data[(player[0].triggerx-1)+(map.width*(player[0].triggery-1))]);\r
        printf("Virtual Screen: %dx", gvar.video.page[0].width);        printf("%d      ", gvar.video.page[0].height);\r
        printf("Screen: %dx", gvar.video.page[0].sw);   printf("%d\n", gvar.video.page[0].sh);\r
        printf("virtual tile resolution: %dx", gvar.video.page[0].tilesw);      printf("%d      ", gvar.video.page[0].tilesh);\r
@@ -274,7 +274,7 @@ if(dbg_noplayerinpu)
        //0000printf("\ngvar.video.tickclk=%f\n", gvar.video.tickclk);\r
        //0000printf("gvar.video.clk=%f", gvar.video.clk);\r
        printf("\n");\r
-       //printf("map.width=%d  map.height=%d   map.data[0]=%d\n", mv->map->width, mv->map->height, mv->map->data[0]);\r
+       //printf("map.width=%d  map.height=%d   map.data[0]=%d\n", mv[0].map->width, mv[0].map->height, mv[0].map->data[0]);\r
 \r
        printf("\n");\r
        switch(detectcpu())\r