diff --git a/src/gl/render.c b/src/gl/render.c
index c4da0dc3844e8644cb14ecdadf740ca49d989e9d..948a7b5cc8d3abb22ffd6484fde0957fa3c0d201 100644 (file)
--- a/src/gl/render.c
+++ b/src/gl/render.c
+/* Copyright (C) 2020 SovietPony
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3 of the License ONLY.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
#include "glob.h"
#include "render.h"
#include "system.h"
#include "dots.h"
#include "items.h"
-#include "sound.h" // snd_vol
-#include "music.h" // mus_vol
+#include "sound.h"
+#include "music.h"
#include "fx.h"
#include "player.h"
img->res = -1;
}
-static void R_gl_quad_vetexes (int x, int y, int w, int h) {
+static void R_gl_draw_quad (int x, int y, int w, int h) {
+ glBegin(GL_QUADS);
glVertex2i(x + w, y);
glVertex2i(x, y);
glVertex2i(x, y + h);
glVertex2i(x + w, y + h);
-}
-
-static void R_gl_draw_quad (int x, int y, int w, int h) {
- glBegin(GL_QUADS);
- R_gl_quad_vetexes(x, y, w, h);
glEnd();
}
int type = 0;
menu_msg_t msg;
msg.type = GM_GETENTRY;
- assert(GM_send(m, i, &msg));
- type = msg.integer.i;
- switch (type) {
- case GM_BUTTON:
- case GM_SCROLLER:
- case GM_TEXTFIELD:
- case GM_TEXTFIELD_BUTTON:
- msg.type = GM_GETCAPTION;
- if (GM_send(m, i, &msg)) {
- x = Z_get_big_string_width("%.*s", msg.string.maxlen, msg.string.s);
- }
- break;
- case GM_SMALL_BUTTON:
- msg.type = GM_GETCAPTION;
- if (GM_send(m, i, &msg)) {
- x = Z_get_small_string_width("%.*s", msg.string.maxlen, msg.string.s);
- }
- break;
- default:
- assert(0);
- }
- switch (type) {
- case GM_BUTTON:
- msg.type = GM_GETSTR;
- if (GM_send(m, i, &msg)) {
- x += Z_get_big_string_width("%.*s", msg.string.maxlen, msg.string.s);
- }
- y = 16;
- break;
- case GM_SMALL_BUTTON:
- msg.type = GM_GETSTR;
- if (GM_send(m, i, &msg)) {
- x += Z_get_big_string_width("%.*s", msg.string.maxlen, msg.string.s);
- }
- y = 12;
- break;
- case GM_SCROLLER:
- x += (SCROLLER_MIDDLE + 2) * 8;
- y = 16;
- break;
- case GM_TEXTFIELD:
- case GM_TEXTFIELD_BUTTON:
- msg.type = GM_GETSTR;
- if (GM_send(m, i, &msg)) {
- x += (msg.string.maxlen + 2) * 8;
- } else {
- x += (TEXTFIELD_MIDDLE + 2) * 8;
- }
- y = 16;
- break;
- default:
- assert(0);
+ if (GM_send(m, i, &msg)) {
+ type = msg.integer.i;
+ switch (type) {
+ case GM_BUTTON:
+ case GM_SCROLLER:
+ case GM_TEXTFIELD:
+ case GM_TEXTFIELD_BUTTON:
+ msg.type = GM_GETCAPTION;
+ if (GM_send(m, i, &msg)) {
+ x = Z_get_big_string_width("%.*s", msg.string.maxlen, msg.string.s);
+ }
+ break;
+ case GM_SMALL_BUTTON:
+ msg.type = GM_GETCAPTION;
+ if (GM_send(m, i, &msg)) {
+ x = Z_get_small_string_width("%.*s", msg.string.maxlen, msg.string.s);
+ }
+ break;
+ default:
+ assert(0);
+ }
+ switch (type) {
+ case GM_BUTTON:
+ msg.type = GM_GETSTR;
+ if (GM_send(m, i, &msg)) {
+ x += Z_get_big_string_width("%.*s", msg.string.maxlen, msg.string.s);
+ }
+ y = 16;
+ break;
+ case GM_SMALL_BUTTON:
+ msg.type = GM_GETSTR;
+ if (GM_send(m, i, &msg)) {
+ x += Z_get_big_string_width("%.*s", msg.string.maxlen, msg.string.s);
+ }
+ y = 12;
+ break;
+ case GM_SCROLLER:
+ x += (SCROLLER_MIDDLE + 2) * 8;
+ y = 16;
+ break;
+ case GM_TEXTFIELD:
+ case GM_TEXTFIELD_BUTTON:
+ msg.type = GM_GETSTR;
+ if (GM_send(m, i, &msg)) {
+ x += (msg.string.maxlen + 2) * 8;
+ } else {
+ x += (TEXTFIELD_MIDDLE + 2) * 8;
+ }
+ y = 16;
+ break;
+ default:
+ assert(0);
+ }
}
*w = x;
*h = y;
glBegin(GL_QUADS);
for (i = 0; i < MAXDOT; i++) {
if (dot[i].t != 0) {
- R_gl_set_color(dot[i].c);
- R_gl_quad_vetexes(dot[i].o.x, dot[i].o.y, 1, 1);
+ int x = dot[i].o.x;
+ int y = dot[i].o.y;
+ R_gl_set_color(dot[i].c); glVertex2i(x + 1, y);
+ R_gl_set_color(dot[i].c); glVertex2i(x, y);
+ R_gl_set_color(dot[i].c); glVertex2i(x, y + 1);
+ R_gl_set_color(dot[i].c); glVertex2i(x + 1, y + 1);
}
}
glEnd();
}
static void R_draw_player (player_t *p) {
- enum {STAND, GO, DIE, SLOP, DEAD, MESS, OUT, FALL}; // copypasted from player.c!
+ enum {STAND, GO, DIE, SLOP, DEAD, MESS, OUT_, FALL}; // copypasted from player.c!
static const int wytab[] = {-1, -2, -1, 0};
int s = 'A';
int w = 0;
case SLOP:
s = plr_slopanim[p->s];
break;
- case OUT:
+ case OUT_:
s = 0;
break;
}
static void R_draw_effects (void) {
enum {NONE, TFOG, IFOG, BUBL}; // copypasted from fx.c
int i, s;
- glPointSize(screen_scale);
for (i = 0; i < MAXFX; ++i) {
switch (fx[i].t) {
case TFOG:
R_reload_textures();
}
-static int video_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int i) {
+static int video_menu_handler (menu_msg_t *msg, const menu_t *m, int i) {
static int cur;
static int w, h, fullscreen;
static char buf[16];
@@ -1934,12 +1949,9 @@ static int video_menu_handler (menu_msg_t *msg, const menu_t *m, void *data, int
return simple_menu_handler(msg, i, __NUM__, &sm, &cur);
}
-static const menu_t video_menu = {
- NULL, &video_menu_handler
-};
-
const menu_t *R_menu (void) {
- return &video_menu;
+ static const menu_t m = { video_menu_handler };
+ return &m;
}
const cfg_t *R_args (void) {
static short getani (char n[8]) {
short i = 0;
- while (i < ANIT - 1 && strncasecmp(n, anm[i][0], 8) != 0) {
+ while (i < ANIT - 1 && cp866_strncasecmp(n, anm[i][0], 8) != 0) {
i++;
}
return i < ANIT - 1 ? i + 1 : 0;
.h = 0,
.res = -1,
};
- } else if (strncasecmp(s, "_WATER_", 7) == 0) {
+ } else if (cp866_strncasecmp(s, "_WATER_", 7) == 0) {
walp[max_textures] = (image) {
.n = (void*)((intptr_t)s[7] - '0' + 1),
.x = 0,