some code cleaning

dev
Milang 3 years ago
parent 5aeb14b1c6
commit 7475d478f5
  1. BIN
      SuperCbr.g1a
  2. 1
      src/camera.c
  3. 32
      src/config.c
  4. 221
      src/world.c

Binary file not shown.

@ -1,4 +1,5 @@
#include <camera.h>
#include <mario.h>
#include <world.h>
#include <base.h>

@ -1,35 +1,15 @@
#include "config.h"
#include <config.h>
#include <liblog.h>
#include <gint/display.h>
#include <keyboard.h>
#include <gint/keyboard.h>
extern image_t img_tickbox;
#include <liblog.h>
char loglevels[6][14]={"--all","--information","--warning","--critical","--fatal","--mute"};
#include <gint/display.h>
#include <gint/keyboard.h>
void configmenu()
{
MKB_clear();
font_t const * const f=dfont(0);
while (1)
{
dclear(C_WHITE);
drect(0,0,128,7,C_BLACK);
dtext(0,0,"Configuration Menu : ", C_WHITE, C_NONE);
dtext(0,9," > LOG", C_BLACK, C_NONE);
dtext(0,17," ", C_BLACK, C_NONE);
dtext(40,9,&loglevels[ll_get_level()][0],C_BLACK,C_NONE);
dupdate();
ll_pause();
int key=MKB_getkey();
if (key==KEY_EXIT)
break;
}
ll_pause();
MKB_clear();
dfont(f);
}
}

@ -1,19 +1,23 @@
#include "world.h"
#include "tile.h"
#include "mario.h"
#include "ennemi.h"
#include <gint/display.h>
#include "bonus.h"
#include <liblog.h>
#include "constants.h"
#include "ennemi.h"
#include <world.h>
#include <base.h>
#include <tile.h>
#include <level.h>
#include <keyboard.h>
#include <camera.h>
#include <mario.h>
#include <ennemi.h>
#include <bonus.h>
#include <ennemi.h>
#include <plateforme.h>
#include <tuyau.h>
#include <bullets.h>
#include <keyboard.h>
#include <base.h>
#include <camera.h>
#include <level.h>
#include <liblog.h>
#include <gint/display.h>
#include <gint/std/string.h>
#include <gint/std/stdlib.h>
@ -43,129 +47,98 @@ void cellDraw(int cx, int cy, int sx, int sy, int plan)
const cell_t * cell=worldGetCell(cx,cy);
if (cell==0)
return;
if (plan==1)
if (plan==1) switch (cell->type)
{
if (cell->type==TUYAU)
{
tuyau_t* i=(tuyau_t*)cell;
tileDraw(sx, sy, &tuyau, i->x, i->y);
}
case TUYAU:
tileDraw(sx, sy, &tuyau, ((tuyau_t*)cell)->x, ((tuyau_t*)cell)->y);
break;
if (cell->type==ARBRE)
{
arbre_t* i=(arbre_t*)cell;
tileDraw(sx, sy, &arbre, i->x, i->y);
}
case ARBRE:
tileDraw(sx, sy, &arbre, ((arbre_t*)cell)->x, ((arbre_t*)cell)->y);
break;
case EARTH:
tileDraw(sx, sy, &earth, ((earth_t*)cell)->x, ((earth_t*)cell)->y);
break;
if (cell->type==EARTH)
case BLOC:
tileDraw(sx, sy, &bloc, 0, 0);
break;
case BRICK:
if (((brick_t*)cell)->time_hit_id) // calculate collision animation
{
earth_t* i=(earth_t*)cell;
tileDraw(sx, sy, &earth, i->x, i->y);
((brick_t*)cell)->time_hit_id++; // Next frame for the animation
sy+=2+(((brick_t*)cell)->time_hit_id-4)/4; // For the brick coordinate
if (((brick_t*)cell)->time_hit_id==8) ((brick_t*)cell)->time_hit_id=0; // End of animation
if (((brick_t*)cell)->state==1 && ((brick_t*)cell)->time_hit_id==0) ((brick_t*)cell)->type=0; // Delete brick
}
if (cell->type==BLOC)
if (!((brick_t*)cell)->hidden)
{
tileDraw(sx, sy, &bloc, 0, 0);
if (((brick_t*)cell)->time_hit_id || !((brick_t*)cell)->content || !((brick_t*)cell)->number) tileDraw(sx, sy, &brick, 0, ((brick_t*)cell)->state);
else tileDraw(sx, sy, &gift, 1, 0);
if (((brick_t*)cell)->content==1 && ((brick_t*)cell)->time_hit_id && ((brick_t*)cell)->time_hit_id<=4) tileDraw(sx, sy+8, &coin, 0, 0);
}
break;
if (cell->type==BLOC)
case GIFT:
if (((gift_t*)cell)->time_hit_id)
{
tileDraw(sx, sy, &bloc, 0, 0);
((gift_t*)cell)->time_hit_id++;
sy+=2+(((gift_t*)cell)->time_hit_id-4)/4;
if (((gift_t*)cell)->time_hit_id==8) ((gift_t*)cell)->time_hit_id=0;
}
if (cell->type==BRICK)
if (((gift_t*)cell)->hidden==0)
{
brick_t* i=(brick_t*)cell;
if (i->time_hit_id)
{
i->time_hit_id++;
sy+=2+(i->time_hit_id-4)/4;
if (i->time_hit_id==8)
i->time_hit_id=0;
if (i->state==1 && i->time_hit_id==0)
i->type=0;
}
if (i->hidden==0)
{
if (i->time_hit_id || i->content==0 || i->number>0)
tileDraw(sx, sy, &brick, 0, i->state);
else
tileDraw(sx, sy, &gift, 1, 0);
if (i->content==1 && i->time_hit_id && i->time_hit_id<=4)
tileDraw(sx, sy+8, &coin, 0, 0);
}
}
if (cell->type==GIFT)
{
gift_t* i=(gift_t*)cell;
if (i->time_hit_id)
{
i->time_hit_id++;
sy+=2+(i->time_hit_id-4)/4;
if (i->time_hit_id==8)
i->time_hit_id=0;
}
if (i->hidden==0)
{
if (i->time_hit_id || i->number)
tileDraw(sx, sy, &gift, 0, 0);
else
tileDraw(sx, sy, &gift, 1, 0);
if (i->content==1 && i->time_hit_id && i->time_hit_id<=4)
tileDraw(sx, sy+8, &coin, 0, 0);
}
if (((gift_t*)cell)->time_hit_id || ((gift_t*)cell)->number) tileDraw(sx, sy, &gift, 0, 0);
else tileDraw(sx, sy, &gift, 1, 0);
if (((gift_t*)cell)->content==1 && ((gift_t*)cell)->time_hit_id && ((gift_t*)cell)->time_hit_id<=4) tileDraw(sx, sy+8, &coin, 0, 0);
}
break;
}
else
else switch (cell->type)
{
if (cell->type==COIN)
{
coin_t const * i=(coin_t*)cell;
tileDraw(sx, sy, &coin, i->taken, 0);
}
case COIN:
tileDraw(sx, sy, &coin, ((coin_t*)cell)->taken, 0);
break;
if (cell->type==BUISSON || cell->type==NUAGE || cell->type==COLLINE || cell->type==CASTLE || cell->type==END_LEVEL)
{
deco_t* i=(deco_t*)cell;
if (i->type==BUISSON)
tileDraw(sx, sy, &buisson, i->x, i->y);
if (i->type==NUAGE)
tileDraw(sx, sy, &nuage, i->x, i->y);
if (i->type==COLLINE)
tileDraw(sx, sy, &colline, i->x, i->y);
if (i->type==CASTLE)
tileDraw(sx, sy, &castle, i->x, i->y);
if (i->type==END_LEVEL)
tileDraw(sx-8, sy, &end_level, 0, i->y);
}
case BUISSON:
tileDraw(sx, sy, &buisson, ((deco_t*)cell)->x, ((deco_t*)cell)->y);
break;
case NUAGE:
tileDraw(sx, sy, &nuage, ((deco_t*)cell)->x, ((deco_t*)cell)->y);
break;
case COLLINE:
tileDraw(sx, sy, &colline, ((deco_t*)cell)->x, ((deco_t*)cell)->y);
break;
case CASTLE:
tileDraw(sx, sy, &castle, ((deco_t*)cell)->x, ((deco_t*)cell)->y);
break;
case END_LEVEL:
tileDraw(sx, sy, &end_level, ((deco_t*)cell)->x, ((deco_t*)cell)->y);
break;
}
}
int worldGetCellCategory(int x, int y)
{
cell_t *c=worldGetCell(x,y);
if (c==0)
{
return CTG_DEATH;
}
if (platformsCollisionTest(x,y))
return CTG_SOIL;
if (c->type==ARBRE)
{
arbre_t* a=(arbre_t*)c;
if (a->x==1&&a->y==1)
return CTG_EMPTY;
}
cell_t *c=worldGetCell(x,y); // get cell props
if (c==0) return CTG_DEATH; // out of the map
if (platformsCollisionTest(x,y)) return CTG_SOIL; // tested point is a platform
if (c->type==ARBRE && (((arbre_t*)c)->x==1&&((arbre_t*)c)->y==1)) return CTG_EMPTY; // tree trunk
switch (c->type)
{
case TUYAU:
case GIFT:
case BRICK:
case EARTH:
case BLOC:
case ARBRE:
case TUYAU: case GIFT: case BRICK: case EARTH: case BLOC: case ARBRE:
return CTG_SOIL;
default:
return CTG_EMPTY;
}
@ -173,19 +146,17 @@ int worldGetCellCategory(int x, int y)
void worldDraw()
{
cameraMove(0);
//cameraAdjust();
int mx0=cameraX();
int my0=cameraY();
int sx0=mx0%8;
int sy0=my0%8;
cameraMove();
const int mx0=cameraX(), my0=cameraY();
const int sx0=mx0%8, sy0=my0%8;
//background tiles
for (int i=0, mx=mx0; i<=17; i++, mx+=8) for (int j=0, my=my0; j<=9; j++, my+=8) cellDraw(mx, my, 8*i-sx0, 8*j-sy0,0);
// animated items
bonusDraw();
ennemiesDisplay();
bulletsDraw();
platformsDraw();
marioDraw();
@ -193,18 +164,14 @@ void worldDraw()
//foreground tiles
for (int i=0, mx=mx0; i<=17; i++, mx+=8) for (int j=0, my=my0; j<=9; j++, my+=8) cellDraw(mx, my, 8*i-sx0, 8*j-sy0,1);
// draw immunity remaining time
// It's a progress bar on the left side
// draw immunity remaining time [It's a progress bar on the left side of the screen]
if (mario_immunity) drect(0,64-MARIO_IMMUNITY_TIME+mario_immunity,2,64, C_BLACK);
}
void worldMove()
{
MKB_update();
for (int i=0; i<ennemis_global_size; i++)
{
ennemiMove(&ennemis_global[i]);
}
for (int i=0; i<ennemis_global_size; i++) ennemiMove(&ennemis_global[i]);
bonusMove();
bulletsMove();
platformsMove();
@ -215,7 +182,7 @@ void worldMove()
void worldSet(int w, int h, int x, int y, cell_t const * a)
{
// Resets mario's vx
mario.p.vx=0; mario.p.vy=0;
mario.p.vx=mario.p.vy=0;
// Free the previous map
if (map_current)
@ -232,7 +199,7 @@ void worldSet(int w, int h, int x, int y, cell_t const * a)
int size= 4*sizeof(int) + sizeof(cell_t)*w*h;
// Copy map into ram
map_current=(map_t*)mallocProf(size); if (map_current==0) mallocError();
map_current=(map_t*)mallocProf(size); if (!map_current) mallocError();
// Copy the map to ram
map_current->w = w;

Loading…
Cancel
Save