Merge branch 'testing'
This commit is contained in:
commit
11b31c9be7
@ -212,9 +212,11 @@ void nebu_render(const double dt) {
|
|||||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
|
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA);
|
||||||
|
|
||||||
/* Compensate possible rubmle. */
|
/* Compensate possible rubmle. */
|
||||||
|
if(!paused) {
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslated(shake_pos.x, shake_pos.y, 0.);
|
glTranslated(shake_pos.x, shake_pos.y, 0.);
|
||||||
|
}
|
||||||
|
|
||||||
/* Now render. */
|
/* Now render. */
|
||||||
glBegin(GL_QUADS);
|
glBegin(GL_QUADS);
|
||||||
@ -235,6 +237,7 @@ void nebu_render(const double dt) {
|
|||||||
glVertex2d(-SCREEN_W/2., SCREEN_H/2.);
|
glVertex2d(-SCREEN_W/2., SCREEN_H/2.);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
|
||||||
|
if(!paused)
|
||||||
glPopMatrix(); /* GL_PROJECTION */
|
glPopMatrix(); /* GL_PROJECTION */
|
||||||
|
|
||||||
/* Set values to defaults. */
|
/* Set values to defaults. */
|
||||||
@ -262,6 +265,8 @@ void nebu_renderOverlay(const double dt) {
|
|||||||
/* Prepare the matrix. */
|
/* Prepare the matrix. */
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
|
glTranslated(gui_xoff, gui_yoff, 0.);
|
||||||
|
if(!paused)
|
||||||
glTranslated(gui_xoff+shake_pos.x, gui_yoff+shake_pos.y, 0.);
|
glTranslated(gui_xoff+shake_pos.x, gui_yoff+shake_pos.y, 0.);
|
||||||
|
|
||||||
/* Mask for area player can still see (partially). */
|
/* Mask for area player can still see (partially). */
|
||||||
|
18
src/opengl.c
18
src/opengl.c
@ -936,6 +936,17 @@ int gl_init(void) {
|
|||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* Good blend model. */
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* Good blend model. */
|
||||||
|
|
||||||
/* Set up the matrix. */
|
/* Set up the matrix. */
|
||||||
|
gl_defViewport();
|
||||||
|
|
||||||
|
/* Finishing touches. */
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT); /* Must clear the buffer first. */
|
||||||
|
gl_checkErr();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reset viewport to default. */
|
||||||
|
void gl_defViewport(void) {
|
||||||
glMatrixMode(GL_PROJECTION);
|
glMatrixMode(GL_PROJECTION);
|
||||||
glLoadIdentity();
|
glLoadIdentity();
|
||||||
glOrtho(-SCREEN_W /2, /* Left edge. */
|
glOrtho(-SCREEN_W /2, /* Left edge. */
|
||||||
@ -944,13 +955,6 @@ int gl_init(void) {
|
|||||||
SCREEN_H /2, /* Top edge. */
|
SCREEN_H /2, /* Top edge. */
|
||||||
-1., /* Near. */
|
-1., /* Near. */
|
||||||
1.); /* Far. */
|
1.); /* Far. */
|
||||||
|
|
||||||
|
|
||||||
/* Finishing touches. */
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT); /* Must clear the buffer first. */
|
|
||||||
gl_checkErr();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clean up our mess. */
|
/* Clean up our mess. */
|
||||||
|
@ -104,6 +104,7 @@ int gl_init(void);
|
|||||||
void gl_exit(void);
|
void gl_exit(void);
|
||||||
|
|
||||||
/* Misc. */
|
/* Misc. */
|
||||||
|
void gl_defViewport(void);
|
||||||
int gl_pot(int n);
|
int gl_pot(int n);
|
||||||
int gl_isTrans(const glTexture* t, const int x, const int y);
|
int gl_isTrans(const glTexture* t, const int x, const int y);
|
||||||
void gl_getSpriteFromDir(int* x, int* y, const glTexture* t, const double dir);
|
void gl_getSpriteFromDir(int* x, int* y, const glTexture* t, const double dir);
|
||||||
|
@ -58,9 +58,11 @@ static int spfx_base_load(char* name, int anim, char* gfx, int sx, int sy) {
|
|||||||
SPFX_Base* cur;
|
SPFX_Base* cur;
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
|
|
||||||
|
/* Create new effect. */
|
||||||
spfx_effects = realloc(spfx_effects, ++spfx_neffects*sizeof(SPFX_Base));
|
spfx_effects = realloc(spfx_effects, ++spfx_neffects*sizeof(SPFX_Base));
|
||||||
cur = &spfx_effects[spfx_neffects-1];
|
cur = &spfx_effects[spfx_neffects-1];
|
||||||
|
|
||||||
|
/* Fill it with the data. */
|
||||||
cur->name = strdup(name);
|
cur->name = strdup(name);
|
||||||
cur->anim = (double)anim / 1000.;
|
cur->anim = (double)anim / 1000.;
|
||||||
sprintf(buf, SPFX_GFX"%s", gfx);
|
sprintf(buf, SPFX_GFX"%s", gfx);
|
||||||
@ -83,8 +85,11 @@ int spfx_get(char* name) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Load/Unload. */
|
/* Load/Unload.
|
||||||
|
* TODO: make it customizable?
|
||||||
|
*/
|
||||||
int spfx_load(void) {
|
int spfx_load(void) {
|
||||||
|
/* Standard explosion effects. */
|
||||||
spfx_base_load("ExpS", 400, "exps.png", 6, 5);
|
spfx_base_load("ExpS", 400, "exps.png", 6, 5);
|
||||||
spfx_base_load("ExpM", 450, "expm.png", 6, 5);
|
spfx_base_load("ExpM", 450, "expm.png", 6, 5);
|
||||||
spfx_base_load("ExpL", 500, "expl.png", 6, 5);
|
spfx_base_load("ExpL", 500, "expl.png", 6, 5);
|
||||||
@ -207,6 +212,7 @@ void spfx_start(double dt) {
|
|||||||
vect_pset(&shake_vel, shake_rad,
|
vect_pset(&shake_vel, shake_rad,
|
||||||
-VANGLE(shake_pos) + (RNGF()-0.5) * M_PI);
|
-VANGLE(shake_pos) + (RNGF()-0.5) * M_PI);
|
||||||
}
|
}
|
||||||
|
/* The shake decays over time. */
|
||||||
shake_rad -= SHAKE_DECAY * dt;
|
shake_rad -= SHAKE_DECAY * dt;
|
||||||
if(shake_rad < 0.) shake_rad = 0.;
|
if(shake_rad < 0.) shake_rad = 0.;
|
||||||
|
|
||||||
|
@ -498,6 +498,7 @@ unsigned int window_create(char* name, const int x, const int y,
|
|||||||
SDL_ShowCursor(SDL_ENABLE);
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
toolkit = 1; /* Enable it. */
|
toolkit = 1; /* Enable it. */
|
||||||
pause_game();
|
pause_game();
|
||||||
|
gl_defViewport(); /* Reset the default viewport. */
|
||||||
}
|
}
|
||||||
|
|
||||||
return wid;
|
return wid;
|
||||||
|
Loading…
Reference in New Issue
Block a user