Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/console.cc46
-rw-r--r--src/client/console.h2
-rw-r--r--src/client/video.cc10
-rw-r--r--src/core/cvar.cc14
-rw-r--r--src/core/func.cc2
5 files changed, 48 insertions, 26 deletions
diff --git a/src/client/console.cc b/src/client/console.cc
index 42ef78a..83d69de 100644
--- a/src/client/console.cc
+++ b/src/client/console.cc
@@ -50,6 +50,9 @@ std::deque<std::string> text;
// console visibility
bool console_visible;
+size_t console_scroll = 0;
+size_t input_pos = 0;
+
//--- engine functions --------------------------------------------
extern "C" void func_con_toggle(std::stringstream &args)
@@ -108,23 +111,29 @@ void draw()
gl::end();
// draw the console text
+ if (console_scroll > text.size())
+ console_scroll = text.size();
+
gl::enable(GL_TEXTURE_2D);
std::deque<std::string>::reverse_iterator rit = text.rbegin();
- float y = video::height*con_height-2*CHARHEIGHT-8;
+ float bottom = video::height*con_height-2*CHARHEIGHT-8;
+ float y = bottom+console_scroll*CHARHEIGHT;
while (y > 0 && rit < text.rend()) {
- std::string line(*rit);
+ if (y <= bottom) {
+ std::string line(*rit);
- if (line[0] == '?')
- gl::color(0.7f,0.7f,0.7f, 1.0f);
- else if (line[0] == '*')
- gl::color(1.0f,1.0f,0.0f, 1.0f);
- else if (line[0] == '!')
- gl::color(1.0f,0.0f,0.0f, 1.0f);
- else
- gl::color(1.0f,1.0f,1.0f, 1.0f);
- line.erase(0,2);
-
- draw_text(CHARWIDTH, y, line);
+ if (line[0] == '?')
+ gl::color(0.7f,0.7f,0.7f, 1.0f);
+ else if (line[0] == '*')
+ gl::color(1.0f,1.0f,0.0f, 1.0f);
+ else if (line[0] == '!')
+ gl::color(1.0f,0.0f,0.0f, 1.0f);
+ else
+ gl::color(1.0f,1.0f,1.0f, 1.0f);
+ line.erase(0,2);
+
+ draw_text(CHARWIDTH, y, line);
+ }
y -= CHARHEIGHT;
++rit;
}
@@ -159,6 +168,9 @@ void toggle()
{
console_visible = !console_visible;
setkeyboardmode(console_visible);
+ console_scroll = 0;
+ input.clear();
+ input_pos = 0;
}
void keypressed(const SDL_keysym &keysym)
@@ -175,6 +187,14 @@ void keypressed(const SDL_keysym &keysym)
input.erase(input.size()-1, 1);
}
break;
+ case SDLK_PAGEUP:
+ console_scroll +=5;
+ if (console_scroll > text.size()) console_scroll = text.size();
+ break;
+ case SDLK_PAGEDOWN:
+ if (console_scroll > 5) console_scroll -=5;
+ else console_scroll = 0;
+ break;
default:
break;
}
diff --git a/src/client/console.h b/src/client/console.h
index 3ea064e..e558438 100644
--- a/src/client/console.h
+++ b/src/client/console.h
@@ -14,7 +14,7 @@
#include <sstream>
#include <deque>
-#define MAXCONLINES 2048
+const size_t MAXCONLINES=2048;
namespace client {
diff --git a/src/client/video.cc b/src/client/video.cc
index f7ae792..19555ec 100644
--- a/src/client/video.cc
+++ b/src/client/video.cc
@@ -84,7 +84,8 @@ bool init()
SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 2);
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
- flags = SDL_OPENGL | SDL_FULLSCREEN;
+ if (r_fullscreen->value()) flags = SDL_OPENGL | SDL_FULLSCREEN;
+ else flags = SDL_OPENGL;
if(!SDL_SetVideoMode(width, height, bpp, flags )) {
con_warn << "Failed to set video mode " << width << "x" << height << "x" << bpp << "bpp" << std::endl;
@@ -101,14 +102,15 @@ bool init()
con_print << " video mode " << width << "x" << height << "x" << bpp << "bpp" << std::endl;
aspect = (float) width / (float) height;
-
+ (*r_width) = width;
+ (*r_height) = height;
render::init();
+ video::reset();
+
view::init();
- video::reset();
-
return true;
}
diff --git a/src/core/cvar.cc b/src/core/cvar.cc
index a1444ae..f7402ab 100644
--- a/src/core/cvar.cc
+++ b/src/core/cvar.cc
@@ -77,9 +77,9 @@ Cvar get(const char *name, const char *value, int flags)
{
Cvar c = find(name);
if (c) {
- con_debug << "cvar::get " << name << " already exist with value " << value << std::endl;
+ //con_debug << "cvar::get " << name << " already exist with value " << cvar->text() << std::endl;
} else {
- con_debug << "cvar::get " << name << " " << value << std::endl;
+ //con_debug << "cvar::get " << name << " " << value << std::endl;
c = new Cvar_t(flags);
registry[std::string(name)] = c;
(*c) = value;
@@ -91,9 +91,9 @@ Cvar get(const char *name, float value, int flags)
{
Cvar c = find(name);
if (c) {
- con_debug << "cvar::get " << name << " already exist with value " << value << std::endl;
+ //con_debug << "cvar::get " << name << " already exist with value " << cvar->text() << std::endl;
} else {
- con_debug << "cvar::get " << name << " " << value << std::endl;
+ //con_debug << "cvar::get " << name << " " << value << std::endl;
c = new Cvar_t(flags);
registry[std::string(name)] = c;
(*c) = value;
@@ -108,8 +108,8 @@ Cvar set(const char *name, const char *value, int flags)
c = new Cvar_t(flags);
registry[std::string(name)] = c;
}
- con_debug << "cvar::set " << name << " " << value << std::endl;
(*c) = value;
+ //con_debug << "cvar::set " << name << " " << cvar->text() << std::endl;
return c;
}
@@ -120,8 +120,8 @@ Cvar set(const char *name, float value, int flags)
c = new Cvar_t(flags);
registry[std::string(name)] = c;
}
- con_debug << "cvar::set " << name << " " << value << std::endl;
(*c) = value;
+ //con_debug << "cvar::set " << name << " " << cvar->text() << std::endl;
return c;
}
@@ -156,7 +156,7 @@ Cvar find(const char *name)
void list()
{
- con_print << "-- listcvar -----------------" << std::endl;
+ con_print << "Registered variables:" << std::endl;
std::map<std::string, Cvar>::iterator it;
for (it = registry.begin(); it != registry.end(); it++) {
diff --git a/src/core/func.cc b/src/core/func.cc
index c72faea..064f77d 100644
--- a/src/core/func.cc
+++ b/src/core/func.cc
@@ -43,7 +43,7 @@ Func find(const std::string &functionname)
void list()
{
- con_print << "-- listfunc -----------------" << std::endl;
+ con_print << "Registered functions:" << std::endl;
std::map<std::string, Func>::iterator it;
for (it = registry.begin(); it != registry.end(); it++) {
con_print << " " << (*it).first << std::endl;