From: Clyne Sullivan Date: Wed, 20 Jan 2016 13:47:05 +0000 (-0500) Subject: merge, particles X-Git-Url: https://code.bitgloo.com/?a=commitdiff_plain;h=d6469d0cafc03c468c5977ec345d08b3ccb6fd0a;p=clyne%2Fgamedev.git merge, particles --- d6469d0cafc03c468c5977ec345d08b3ccb6fd0a diff --cc Changelog index 8b01fe7,a4c3ede..b88ebe4 --- a/Changelog +++ b/Changelog @@@ -547,9 -547,3 +547,16 @@@ - removed layers - switched world linking from pointers to file names, rewrote all world-linking code - worlds are now loaded dynamically + +1/19/2015: +========== + + - memory management + - began reconsidering save/load stuff ++ ++1/20/2015: ++========== ++ ++ - can save npc dialog positions ++ - worked on player sprite redesign ++ - greatly simplified/documented gameplay.cpp diff --cc include/Texture.h index 03593bf,7160d37..50681bf --- a/include/Texture.h +++ b/include/Texture.h @@@ -28,8 -28,8 +28,11 @@@ namespace Texture */ GLuint loadTexture(const char *fileName); + + void freeTextures(void); ++ + void initColorIndex(); + vec2 getIndex(Color c); } /** diff --cc src/Texture.cpp index 0dd1eff,f688327..4418a3b --- a/src/Texture.cpp +++ b/src/Texture.cpp @@@ -63,13 -70,65 +70,73 @@@ namespace Texture return object; } ++ + void freeTextures(void){ + for(unsigned int i=0;itex); + delete[] LoadedTexture[i]->name; + delete LoadedTexture[i]; + } + } + + void initColorIndex(){ + colorIndex = loadTexture("assets/colorIndex.png"); + glActiveTexture(GL_TEXTURE0); + glBindTexture(GL_TEXTURE_2D, colorIndex); + GLubyte* buffer = new GLubyte[8*4*3]; + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, buffer); + GLfloat* bufferf = new GLfloat[8*4*3]; + for(uint iu = 0; iu < 8*4*3; iu++){ + bufferf[iu] = float(buffer[iu]) / 255.0f; + } + uint i = 0; + for(uint y = 0; y < 8; y++){ + for(uint x = 0; x < 4; x++){ + if(i >= 8*4*3){ + return; + } + pixels[y][x].red = buffer[i++]; + pixels[y][x].green = buffer[i++]; + pixels[y][x].blue = buffer[i++]; - std::cout << pixels[y][x].red << "," << pixels[y][x].green << "," << pixels[y][x].blue << std::endl; ++ //std::cout << pixels[y][x].red << "," << pixels[y][x].green << "," << pixels[y][x].blue << std::endl; + //std::cout << std::endl; + } + } + + } + + //sqrt((255-145)^2+(90-145)^2+(0-0)^2); + std::vectorind; + vec2 getIndex(Color c){ + for(auto &i : ind){ + if(c.red == i.color.red && c.green == i.color.green && c.blue == i.color.blue){ + //std::cout << float(i.indexy) << "," << float(i.indexx) << std::endl; + return {float(i.indexx), float(i.indexy)}; + } + } + uint buf[2]; + float buff = 999; + float shit = 999; + for(uint y = 0; y < 8; y++){ + for(uint x = 0; x < 4; x++){ - std::cout << y << "," << x << ":" << pixels[y][x].red << "," << pixels[y][x].green << "," << pixels[y][x].blue << std::endl; ++ //std::cout << y << "," << x << ":" << pixels[y][x].red << "," << pixels[y][x].green << "," << pixels[y][x].blue << std::endl; + buff = sqrt(pow((pixels[y][x].red- c.red), 2)+ + pow((pixels[y][x].green-c.green),2)+ + pow((pixels[y][x].blue- c.blue), 2)); + //std::cout << buff << std::endl; + if(buff < shit){ + shit = buff; + buf[0] = y; + buf[1] = x; + } + // + //std::cout << shit << std::endl; + } + } + ind.push_back({c, (int)buf[1], (int)buf[0]}); - std::cout << float(buf[1]) << ", " << float(buf[0]) << std::endl; ++ //std::cout << float(buf[1]) << ", " << float(buf[0]) << std::endl; + return {float(buf[1]),float(buf[0])}; + } } Texturec::Texturec(uint amt, ...){