diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2016-05-15 22:52:44 -0400 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2016-05-15 22:52:44 -0400 |
commit | e786f4a546fd9b08d83cd3e4058a93b26e7ae6ab (patch) | |
tree | f4ed6de1b5368c961e9078e9ac003acf188a3279 /src | |
parent | 0d4504017648b56a565216119a82166deb1f8d5d (diff) |
Sword swinging
Diffstat (limited to 'src')
-rw-r--r-- | src/entities.cpp | 60 | ||||
-rw-r--r-- | src/inventory.cpp | 42 | ||||
-rw-r--r-- | src/ui.cpp | 70 |
3 files changed, 96 insertions, 76 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index af9747d..73e7808 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -898,52 +898,52 @@ void Particles::draw(std::vector<GLfloat> &p) const z = 2.0; // lower left - p.push_back(loc.x); - p.push_back(loc.y); - p.push_back(z); + p.emplace_back(loc.x); + p.emplace_back(loc.y); + p.emplace_back(z); - p.push_back(tc.x); - p.push_back(tc.y); + p.emplace_back(tc.x); + p.emplace_back(tc.y); // lower right - p.push_back(loc.x + width); - p.push_back(loc.y); - p.push_back(z); + p.emplace_back(loc.x + width); + p.emplace_back(loc.y); + p.emplace_back(z); - p.push_back(tc.x); - p.push_back(tc.y); + p.emplace_back(tc.x); + p.emplace_back(tc.y); // upper right - p.push_back(loc.x + width); - p.push_back(loc.y + height); - p.push_back(z); + p.emplace_back(loc.x + width); + p.emplace_back(loc.y + height); + p.emplace_back(z); - p.push_back(tc.x); - p.push_back(tc.y); + p.emplace_back(tc.x); + p.emplace_back(tc.y); // upper right - p.push_back(loc.x + width); - p.push_back(loc.y + height); - p.push_back(z); + p.emplace_back(loc.x + width); + p.emplace_back(loc.y + height); + p.emplace_back(z); - p.push_back(tc.x); - p.push_back(tc.y); + p.emplace_back(tc.x); + p.emplace_back(tc.y); // upper left - p.push_back(loc.x); - p.push_back(loc.y + height); - p.push_back(z); + p.emplace_back(loc.x); + p.emplace_back(loc.y + height); + p.emplace_back(z); - p.push_back(tc.x); - p.push_back(tc.y); + p.emplace_back(tc.x); + p.emplace_back(tc.y); // lower left - p.push_back(loc.x); - p.push_back(loc.y); - p.push_back(z); + p.emplace_back(loc.x); + p.emplace_back(loc.y); + p.emplace_back(z); - p.push_back(tc.x); - p.push_back(tc.y); + p.emplace_back(tc.x); + p.emplace_back(tc.y); } void Particles::update(float _gravity, float ground_y) diff --git a/src/inventory.cpp b/src/inventory.cpp index c64f62f..29e2dc9 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -408,7 +408,7 @@ void Inventory::draw(void) { float t = (((float)massDfp[a]/(float)massRange)*.5f); glActiveTexture(GL_TEXTURE0); glUseProgram(textShader); - + glBindTexture(GL_TEXTURE_2D, Texture::genColor(Color(0.0f,0.0f,0.0f, t >= 0? 255*t : 0))); glUniform1i(textShader_uniform_texture, 0); @@ -438,7 +438,7 @@ void Inventory::draw(void) { curCurCoord[a].x -= float((curdfp[a]) * cos(-1)); curCurCoord[a].y += float((curdfp[a]) * sin(0)); cr.end = curCurCoord[a]; - + float curTrans = (((float)curdfp[a]/(float)(curRange?curRange:1))*0.5f); glUseProgram(textShader); @@ -495,7 +495,7 @@ void Inventory::draw(void) { &textShader_uniform_texture, &textShader_attribute_coord, &textShader_attribute_tex); - + glUseProgram(textShader); glUniform4f(textShader_uniform_color, 1.0, 1.0, 1.0, 1.0); @@ -503,7 +503,7 @@ void Inventory::draw(void) { glBindTexture(GL_TEXTURE_2D, Texture::genColor(Color(255, 255, 255, t >= 0 ? 255 * t : 0))); drawRect(vec2(r.end.x - (itemWide*sc)/2 - (itemWide*sc)*.09,r.end.y - (itemWide*sc)/2 - (itemWide*sc)*.09), vec2(r.end.x + (itemWide*sc)/2 + (itemWide*sc)*.09,r.end.y - (itemWide*sc)/2)); - + // top glBindTexture(GL_TEXTURE_2D, Texture::genColor(Color(255, 255, 255, t >= 0 ? 255 * t : 0))); drawRect(vec2(r.end.x - (itemWide*sc)/2 - (itemWide*sc)*.09,r.end.y + (itemWide*sc)/2 + (itemWide*sc)*.09), @@ -617,14 +617,34 @@ void itemDraw(Player *p, Item *d) { itemLoc.y = p->loc.y+(p->height/3); itemLoc.x = p->left?p->loc.x-d->dim.x/2:p->loc.x+p->width-d->dim.x/2; + glUseProgram(worldShader); + if (p->left) { - glTranslatef(itemLoc.x+d->dim.x/2,itemLoc.y,0); - glRotatef(d->rotation, 0.0f, 0.0f, 1.0f); - glTranslatef(-itemLoc.x-d->dim.x/2,-itemLoc.y,0); + // move to center of screen + glm::mat4 tro = glm::translate(glm::mat4(1.0f), + glm::vec3(itemLoc.x+d->dim.x/2, itemLoc.y, 0)); + // rotate off center + glm::mat4 rot = glm::rotate(glm::mat4(1.0f), + static_cast<GLfloat>((d->rotation*3.14159)/180.0f), + glm::vec3(0.0f, 0.0f, 1.0f)); + // move back to player + glm::mat4 trt = glm::translate(glm::mat4(1.0f), + glm::vec3(-itemLoc.x-d->dim.x/2, -itemLoc.y, 0)); + // tell shader to translate the object using steps above + glUniformMatrix4fv(worldShader_uniform_transform, 1, GL_FALSE, glm::value_ptr(tro * rot * trt)); } else { - glTranslatef(itemLoc.x+d->dim.x/2,itemLoc.y,0); - glRotatef(d->rotation, 0.0f, 0.0f, 1.0f); - glTranslatef(-itemLoc.x-d->dim.x/2,-itemLoc.y,0); + // move to center of screen + glm::mat4 tro = glm::translate(glm::mat4(1.0f), + glm::vec3(itemLoc.x+d->dim.x/2,itemLoc.y,0)); + // rotate off center + glm::mat4 rot = glm::rotate(glm::mat4(1.0f), + static_cast<GLfloat>((d->rotation*3.14159)/180.0f), + glm::vec3(0.0f, 0.0f, 1.0f)); + // move back to player + glm::mat4 trt = glm::translate(glm::mat4(1.0f), + glm::vec3(-itemLoc.x-d->dim.x/2,-itemLoc.y,0)); + // tell shader to translate the object using steps above + glUniformMatrix4fv(worldShader_uniform_transform, 1, GL_FALSE, glm::value_ptr(tro * rot * trt)); } GLfloat itemTex[12] = {0.0, 0.0, @@ -650,7 +670,7 @@ void itemDraw(Player *p, Item *d) { itemLoc.x+d->dim.x, itemLoc.y+d->dim.y, 1.0, itemLoc.x, itemLoc.y+d->dim.y, 1.0, itemLoc.x, itemLoc.y, 1.0}; - glUseProgram(worldShader); + glBindTexture(GL_TEXTURE_2D,d->tex->image[0]); glEnableVertexAttribArray(worldShader_attribute_coord); @@ -324,12 +324,12 @@ namespace ui { c1.x, c1.y+c2.y-c2.y, 1.0, //top left c1.x, c1.y -c2.y, 1.0, //bottom left }; - - glUniform4f(textShader_uniform_color, - static_cast<float>(fontColor[0]/255), - static_cast<float>(fontColor[1]/255), - static_cast<float>(fontColor[2]/255), - static_cast<float>(fontColor[3]/255)); + + glUniform4f(textShader_uniform_color, + static_cast<float>(fontColor[0]/255), + static_cast<float>(fontColor[1]/255), + static_cast<float>(fontColor[2]/255), + static_cast<float>(fontColor[3]/255)); glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, text_vert); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, tex_coord); @@ -684,28 +684,28 @@ namespace ui { static GLuint boxT = Texture::genColor(Color(0,0,0)); static GLuint lineT = Texture::genColor(Color(255,255,255)); - glActiveTexture(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, boxT); glUniform1i(textShader_uniform_texture, 0); glUseProgram(textShader); glEnableVertexAttribArray(textShader_attribute_coord); glEnableVertexAttribArray(textShader_attribute_tex); - + glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, box); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, box_tex); glDrawArrays(GL_TRIANGLES, 0 ,6); - + glBindTexture(GL_TEXTURE_2D, lineT); glUniform1i(textShader_uniform_texture, 0); glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, line_strip); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, box_tex); glDrawArrays(GL_LINE_STRIP, 0 ,8); - + glDisableVertexAttribArray(textShader_attribute_coord); glDisableVertexAttribArray(textShader_attribute_tex); - + glUseProgram(0); } @@ -738,21 +738,21 @@ namespace ui { 0.0, 1.0, 0.0, 0.0}; - glActiveTexture(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, pageTex); glUniform1i(textShader_uniform_texture, 0); glUseProgram(textShader); glEnableVertexAttribArray(textShader_attribute_coord); glEnableVertexAttribArray(textShader_attribute_tex); - + glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, page_loc); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, page_tex); glDrawArrays(GL_TRIANGLES, 0 ,6); - + glDisableVertexAttribArray(textShader_attribute_coord); glDisableVertexAttribArray(textShader_attribute_tex); - + glUseProgram(0); } else if (dialogBoxExists) { @@ -819,18 +819,18 @@ namespace ui { offset.x + (SCREEN_WIDTH / 10) - 40, offset.y + (SCREEN_HEIGHT / 5) + 40,1.0, offset.x + (SCREEN_WIDTH / 10) - 40, offset.y + (SCREEN_HEIGHT / 5), 1.0}; - glActiveTexture(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, getItemTexture(merchTrade.item[1])); glUniform1i(textShader_uniform_texture, 0); glUseProgram(textShader); glEnableVertexAttribArray(textShader_attribute_coord); glEnableVertexAttribArray(textShader_attribute_tex); - + glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, left_item); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, item_tex); glDrawArrays(GL_TRIANGLES, 0 ,6); - + glBindTexture(GL_TEXTURE_2D, getItemTexture(merchTrade.item[0])); glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, right_item); @@ -839,7 +839,7 @@ namespace ui { glDisableVertexAttribArray(textShader_attribute_coord); glDisableVertexAttribArray(textShader_attribute_tex); - + glUseProgram(0); merchArrowLoc[0].x = offset.x - (SCREEN_WIDTH / 8.5) - 16; @@ -874,14 +874,14 @@ namespace ui { glEnableVertexAttribArray(textShader_attribute_coord); glEnableVertexAttribArray(textShader_attribute_tex); - + glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, tri_c); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, tri_t); glDrawArrays(GL_TRIANGLES, 0 ,6); - + glDisableVertexAttribArray(textShader_attribute_coord); glDisableVertexAttribArray(textShader_attribute_tex); - + glUseProgram(0); } @@ -968,27 +968,27 @@ namespace ui { hub.x, hub.y + 12, 1.0, hub.x + 150, hub.y + 12, 1.0}; - + glUniform1i(textShader_uniform_texture, 0); glUseProgram(textShader); glEnableVertexAttribArray(textShader_attribute_coord); glEnableVertexAttribArray(textShader_attribute_tex); - + glBindTexture(GL_TEXTURE_2D, Texture::genColor(Color(150,0,0))); glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, front); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, tex); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - + glBindTexture(GL_TEXTURE_2D, Texture::genColor(Color(255,0,0))); - + glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, back); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, tex); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDisableVertexAttribArray(textShader_attribute_coord); - glDisableVertexAttribArray(textShader_attribute_tex); + glDisableVertexAttribArray(textShader_attribute_tex); glUseProgram(0); } @@ -1038,7 +1038,7 @@ namespace ui { void dialogAdvance(void) { unsigned char i; - + dialogPassive = false; dialogPassiveTime = 0; @@ -1123,7 +1123,7 @@ EXIT: toggleBlackFast(); player->canMove = true; }; - + while(SDL_PollEvent(&e)) { switch(e.type) { @@ -1163,8 +1163,8 @@ EXIT: if (e.button.button & SDL_BUTTON_LEFT) { if ((en = currentWorld->getNearMob(*player)) != nullptr) { player->inv->currentAddInteract(en); - player->inv->useCurrent(); } + player->inv->useCurrent(); } } @@ -1341,7 +1341,7 @@ EXIT: if (player->speed == 4) Mix_FadeOutChannel(1,2000); - // fall through + // fall through case SDLK_LCTRL: player->speed = 1; break; @@ -1441,20 +1441,20 @@ EXIT: offset.x + SCREEN_WIDTH / 2, offset.y - SCREEN_HEIGHT / 2, 1.0, offset.x - SCREEN_WIDTH / 2, offset.y + SCREEN_HEIGHT / 2, 1.0, offset.x + SCREEN_WIDTH / 2, offset.y + SCREEN_HEIGHT / 2, 1.0}; - + glUniform1i(textShader_uniform_texture, 0); glUseProgram(textShader); glEnableVertexAttribArray(textShader_attribute_coord); glEnableVertexAttribArray(textShader_attribute_tex); - + glVertexAttribPointer(textShader_attribute_coord, 3, GL_FLOAT, GL_FALSE, 0, backdrop); glVertexAttribPointer(textShader_attribute_tex, 2, GL_FLOAT, GL_FALSE, 0, tex); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - + glDisableVertexAttribArray(textShader_attribute_coord); glDisableVertexAttribArray(textShader_attribute_tex); - + glUseProgram(0); } |