aboutsummaryrefslogtreecommitdiffstats
path: root/src/world.cpp
diff options
context:
space:
mode:
authordrumsetmonkey <abelleisle@roadrunner.com>2016-04-06 07:38:59 -0400
committerdrumsetmonkey <abelleisle@roadrunner.com>2016-04-06 07:38:59 -0400
commit3ca4cca09ed9a2b1028928dea98f19bd26ab3b2c (patch)
treef8444f987be86181786859c2aabdd2d7eb2a5539 /src/world.cpp
parentb2ea70a36ba2249383c9b5cb3c2c784c28311938 (diff)
First world and style
Diffstat (limited to 'src/world.cpp')
-rw-r--r--src/world.cpp50
1 files changed, 38 insertions, 12 deletions
diff --git a/src/world.cpp b/src/world.cpp
index bcd4f7a..625a33b 100644
--- a/src/world.cpp
+++ b/src/world.cpp
@@ -434,20 +434,20 @@ void World::draw(Player *p){
safeSetColorA( 255, 255, 255, weather == WorldWeather::Snowy ? 150 : 255 - worldShade * 4);
glBegin( GL_QUADS );
- glTexCoord2i( 0, 0 ); glVertex2i( offset.x - SCREEN_WIDTH/2-5, SCREEN_HEIGHT );
- glTexCoord2i( 1, 0 ); glVertex2i( offset.x + SCREEN_WIDTH/2+5, SCREEN_HEIGHT );
- glTexCoord2i( 1, 1 ); glVertex2i( offset.x + SCREEN_WIDTH/2+5, 0 );
- glTexCoord2i( 0, 1 ); glVertex2i( offset.x - SCREEN_WIDTH/2-5, 0 );
+ glTexCoord2i( 0, 0 ); glVertex2i( offset.x - SCREEN_WIDTH/2-5, offset.y + SCREEN_HEIGHT/2 );
+ glTexCoord2i( 1, 0 ); glVertex2i( offset.x + SCREEN_WIDTH/2+5, offset.y + SCREEN_HEIGHT/2 );
+ glTexCoord2i( 1, 1 ); glVertex2i( offset.x + SCREEN_WIDTH/2+5, offset.y - SCREEN_HEIGHT/2 );
+ glTexCoord2i( 0, 1 ); glVertex2i( offset.x - SCREEN_WIDTH/2-5, offset.y - SCREEN_HEIGHT/2 );
glEnd();
bgTex->bindNext();
safeSetColorA( 255, 255, 255, worldShade * 4);
glBegin( GL_QUADS );
- glTexCoord2i( 0, 0 ); glVertex2i( worldStart, SCREEN_HEIGHT );
- glTexCoord2i( 1, 0 ); glVertex2i( -worldStart, SCREEN_HEIGHT );
- glTexCoord2i( 1, 1 ); glVertex2i( -worldStart, 0 );
- glTexCoord2i( 0, 1 ); glVertex2i( worldStart, 0 );
+ glTexCoord2i( 0, 0 ); glVertex2i( offset.x - SCREEN_WIDTH/2-5, offset.y + SCREEN_HEIGHT/2 );
+ glTexCoord2i( 1, 0 ); glVertex2i( offset.x + SCREEN_WIDTH/2+5, offset.y + SCREEN_HEIGHT/2 );
+ glTexCoord2i( 1, 1 ); glVertex2i( offset.x + SCREEN_WIDTH/2+5, offset.y - SCREEN_HEIGHT/2 );
+ glTexCoord2i( 0, 1 ); glVertex2i( offset.x - SCREEN_WIDTH/2-5, offset.y - SCREEN_HEIGHT/2 );
glEnd();
glDisable( GL_TEXTURE_2D );
@@ -524,7 +524,15 @@ void World::draw(Player *p){
// draw particles and buildings
- std::for_each( particles.begin(), particles.end(), [](Particles part) { if ( part.behind ) part.draw(); });
+ glActiveTexture(GL_TEXTURE0);
+ glBindTexture(GL_TEXTURE_2D, colorIndex);
+
+ glUniform1i(glGetUniformLocation(shaderProgram, "sampler"), 0);
+ glUseProgram(shaderProgram);
+
+ std::for_each( particles.begin(), particles.end(), [](Particles part) { if ( part.behind ) part.draw(); });
+
+ glUseProgram(0);
for ( auto &b : build )
b->draw();
@@ -671,8 +679,17 @@ void World::draw(Player *p){
* Draw remaining entities.
*/
+
+ glActiveTexture(GL_TEXTURE0);
+ glBindTexture(GL_TEXTURE_2D, colorIndex);
+
+ glUniform1i(glGetUniformLocation(shaderProgram, "sampler"), 0);
+ glUseProgram(shaderProgram);
+
std::for_each( particles.begin(), particles.end(), [](Particles part) { if ( !part.behind ) part.draw(); });
+ glUseProgram(0);
+
for ( auto &n : npc )
n->draw();
@@ -1383,9 +1400,18 @@ draw( Player *p )
/*
* Draw all entities.
*/
+ glActiveTexture(GL_TEXTURE0);
+ glBindTexture(GL_TEXTURE_2D, colorIndex);
- for ( auto &part : particles )
- part.draw();
+ glUniform1i(glGetUniformLocation(shaderProgram, "sampler"), 0);
+ glUseProgram(shaderProgram);
+
+ std::for_each( particles.begin(), particles.end(), [](Particles &part) { part.draw(); });
+
+ glUseProgram(0);
+
+ /*for ( auto &part : particles )
+ part.draw();*/
for ( auto &e : entity )
e->draw();
@@ -1542,7 +1568,7 @@ loadWorldFromXMLNoSave( std::string path ) {
loadedRight = false;
}
} else
- abort();
+ abort();
} else if ( name == "style" ) {
tmp->setStyle(wxml->StrAttribute("folder"));
tmp->setBackground((WorldBGType)wxml->UnsignedAttribute("background"));