Texturec(uint amt, ...);
void bindNext();
void bindPrev();
+ void bind(int);
GLuint *image;
-private:
int texState;
+private:
};
};
class Mob : public Entity{
public:
- Mob();
+ Mob(int);
void wander(int, vec2*);
};
/*
* TODO - Initialize shaders n' stuff
*/
-
- /*
+ /*
GLuint fragShader;
- GLuint shaderProgram;
+ GLuint shaderProgram;6da
const GLchar *shaderSource = "shader.frag";
GLint bufferln = GL_FALSE;
shaderProgram = glCreateProgram();
fragShader = glCreateShader(GL_FRAGMENT_SHADER);
-
- glShaderSource(fragShader, 1, &shaderSource, NULL);
+
+ glShaderSource(fragShader, 1, shaderSource, NULL);
glCompileShader(fragShader);
glGetShaderiv(fragShader, GL_COMPILE_STATUS, &bufferln);
glAttachShader(shaderProgram, fragShader);
glLinkProgram(shaderProgram);
glValidateProgram(shaderProgram);
-
+ */
//glEnable(GL_DEPTH_TEST);
//glEnable(GL_MULTISAMPLE);
-
- */
/*
* Open the names file containing potential names for NPCs and store it in the names file
ui::putText(player->loc.x-SCREEN_WIDTH/2,
SCREEN_HEIGHT-ui::fontSize,
- "FPS: %d\nG:%d\nRes: %ux%u\nE: %d\nPOS: (x)%+.2f\n (y)%+.2f\nQc: %u",
+ "FPS: %d\nG:%d\nRes: %ux%u\nE: %d\nPOS: (x)%+.2f\n (y)%+.2f\nQc: %u\nTS:%d\n",
fps,
player->ground,
SCREEN_WIDTH, // Window dimensions
entity.size(), // Size of entity array
player->loc.x, // The player's x coordinate
debugY, // The player's y coordinate
- player->qh.current.size() // Active quest count
+ player->qh.current.size(), // Active quest count
+ player->tex->texState
);
}
va_end(fNames);
}
+void Texturec::bind(int bn){
+ texState = bn;
+ glBindTexture(GL_TEXTURE_2D, image[texState]);
+}
+
void Texturec::bindNext(){
- //glBindTexture(GL_TEXTURE_2D);
+ bind(++texState);
+}
+
+void Texturec::bindPrev(){
+ bind(--texState);
}
\ No newline at end of file
ground = false;
near = true;
inv = new Inventory(PLAYER_INV_SIZE);
- tex = new Texturec(3, "assets/player.png", "assets/player1.png", "assets/player2.png");
+ tex = new Texturec(3, "assets/player1.png", "assets/player.png", "assets/player2.png");
}
NPC::NPC(){ //sets all of the NPC specific traits on object creation
tex = new Texturec(1,"assets/house1.png");
}
-Mob::Mob(){
+Mob::Mob(int sub){
width = HLINE * 10;
height = HLINE * 8;
speed = 1;
type = MOBT; //sets type to MOB
- subtype = 1; //SKIRL
+ subtype = sub; //SKIRL
alive = true;
canMove = true;
near = false;
- tex = new Texturec(2, "assets/rabbit.png", "assets/rabbit.png1");
+ if(subtype == 1){//RABBIT
+ tex = new Texturec(2, "assets/rabbit.png", "assets/rabbit1.png");
+ }else if(subtype == 2){//BIRD
+ //add bird textures and bird things
+ }
inv = new Inventory(NPC_INV_SIZE);
}
if(up){
texState+=1;
if(texState==2)up=false;
+ tex->bindNext();
}else if(!up){
texState-=1;
if(texState==0)up=true;
+ tex->bindPrev();
}
}
if(ground == 0){
- glBindTexture(GL_TEXTURE_2D, tex->image[0]);
+ tex->bind(0);
}else if(vel.x != 0){
switch(texState){
case 0:
- glBindTexture(GL_TEXTURE_2D,tex->image[1]);
+ tex->bind(0);
break;
case 1:
- glBindTexture(GL_TEXTURE_2D,tex->image[0]);
+ tex->bind(1);
break;
case 2:
- glBindTexture(GL_TEXTURE_2D,tex->image[2]);
+ tex->bind(2);
break;
}
}
else{
- glBindTexture(GL_TEXTURE_2D,tex->image[0]);
+ tex->bind(1);
}
}else if(type == MOBT){
switch(subtype){
case 1: //RABBIT
if(ground == 0){
- glBindTexture(GL_TEXTURE_2D, tex->image[1]);
+ tex->bind(1);
}else if(ground == 1){
- glBindTexture(GL_TEXTURE_2D, tex->image[0]);
+ tex->bind(0);
}
break;
default:
break;
}
}else{
- glBindTexture(GL_TEXTURE_2D,tex->image[0]);
+ tex->bind(0);
}
glColor3ub(255,255,255);
glBegin(GL_QUADS);
iw->generate(200);
build[0]->inside=iw;
- entity.push_back(new Mob()); //create a new entity of NPC type
- mob.push_back(Mob()); //create new NPC
+ entity.push_back(new Mob(1)); //create a new entity of NPC type
+ mob.push_back(Mob(1)); //create new NPC
entity[entity.size()] = &mob[mob.size()-1]; //set the new entity to have the same traits as an NPC
entity[entity.size()-1]->spawn(200,100); //sets the position of the villager around the village
entity.pop_back();