diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2016-02-05 08:29:56 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2016-02-05 08:29:56 -0500 |
commit | b18d9c1b0fa305f82ddd0633e969a1a38869db6d (patch) | |
tree | 8096f4a112f633ed2d4d1ee67c475d97d7648823 /src | |
parent | 814dab606cfeeabd4aeecba852507c3c3f1a005f (diff) |
font improvements
Diffstat (limited to 'src')
-rw-r--r-- | src/config.cpp | 7 | ||||
-rw-r--r-- | src/gameplay.cpp | 64 | ||||
-rw-r--r-- | src/inventory.cpp | 6 | ||||
-rw-r--r-- | src/ui.cpp | 12 | ||||
-rw-r--r-- | src/world.cpp | 14 |
5 files changed, 80 insertions, 23 deletions
diff --git a/src/config.cpp b/src/config.cpp index 8ec361d..ca6db1b 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -1,5 +1,7 @@ #include <config.h> +#include <ui.h> + using namespace tinyxml2; extern unsigned int HLINE; @@ -44,7 +46,10 @@ void readConfig(){ VOLUME_MASTER = vol->FirstChildElement("master")->FloatAttribute("volume"); VOLUME_MUSIC = vol->FirstChildElement("music")->FloatAttribute("volume"); VOLUME_SFX = vol->FirstChildElement("sfx")->FloatAttribute("volume"); - + + std::cout<<"Loading font through settings.xml..."<<std::endl; + ui::initFonts(); + ui::setFontFace(xml.FirstChildElement("font")->Attribute("path")); } void updateConfig(){ diff --git a/src/gameplay.cpp b/src/gameplay.cpp index 1103cfa..00faf70 100644 --- a/src/gameplay.cpp +++ b/src/gameplay.cpp @@ -173,7 +173,7 @@ int commonAIFunc(NPC *speaker){ speaker->dialogIndex = 9999; return 0; }else if(exml->QueryBoolAttribute("pause",&stop) == XML_NO_ERROR && stop){ - speaker->dialogIndex = 9999; + //speaker->dialogIndex = 9999; return 1; }else return commonAIFunc(speaker); }else{ @@ -191,6 +191,47 @@ int commonAIFunc(NPC *speaker){ return 0; } +void commonTriggerFunc(Mob *callee){ + static bool lock = false; + XMLDocument xml; + XMLElement *exml; + + char *text,*pch; + + if(!lock){ + lock = true; + + xml.LoadFile(currentXML); + exml = xml.FirstChildElement("Trigger"); + + while(strcmp(exml->Attribute("id"),callee->heyid.c_str())) + exml = exml->NextSiblingElement(); + + player->vel.x = 0; + + ui::toggleBlackFast(); + ui::waitForCover(); + + text = new char[256]; + strcpy(text,exml->GetText()); + pch = strtok(text,"\n"); + + while(pch){ + ui::importantText(pch); + ui::waitForDialog(); + + pch = strtok(NULL,"\n"); + } + + delete[] text; + + ui::toggleBlackFast(); + + callee->alive = false; + lock = false; + } +} + void destroyEverything(void); void initEverything(void){ std::vector<std::string> xmlFiles; @@ -227,17 +268,6 @@ void initEverything(void){ } } - /* - * Spawn the player and begin the game. - */ - - player = new Player(); - player->spawn(200,100); - - currentWorld->bgmPlay(NULL); - atexit(destroyEverything); - std::cout << "Hey"; - pauseMenu.items.push_back(ui::createParentButton({-256/2,0},{256,75},{0.0f,0.0f,0.0f}, "Resume")); pauseMenu.items.push_back(ui::createChildButton({-256/2,-100},{256,75},{0.0f,0.0f,0.0f}, "Options")); pauseMenu.items.push_back(ui::createButton({-256/2,-200},{256,75},{0.0f,0.0f,0.0f}, "Save and Quit", ui::quitGame)); @@ -252,6 +282,16 @@ void initEverything(void){ optionsMenu.child = NULL; optionsMenu.parent = &pauseMenu; // optionsMenu.push_back(ui::createButton({-256/2,-200},{256,75},{0.0f,0.0f,0.0f}, (const char*)("Save and Quit"), ); + + /* + * Spawn the player and begin the game. + */ + + player = new Player(); + player->spawn(200,100); + + currentWorld->bgmPlay(NULL); + atexit(destroyEverything); } extern std::vector<int (*)(NPC *)> AIpreload; diff --git a/src/inventory.cpp b/src/inventory.cpp index de60030..93bdeb6 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -88,6 +88,12 @@ void initInventorySprites(void){ } void destroyInventory(void){ + + while(!itemMap.empty()){ + delete itemMap.front(); + itemMap.erase(itemMap.begin()); + } + Mix_FreeChunk(swordSwing); } @@ -227,8 +227,8 @@ namespace ui { buf[j*4 ]=fontColor[0]; buf[j*4+1]=fontColor[1]; buf[j*4+2]=fontColor[2]; - //buf[j*4+3]=ftf->glyph->bitmap.buffer[j] == 255 ? 255 : 0; - buf[j*4+3]=ftf->glyph->bitmap.buffer[j]; + buf[j*4+3]=ftf->glyph->bitmap.buffer[j] ? 255 : 0; + //buf[j*4+3]=ftf->glyph->bitmap.buffer[j]; } ftexwh[i-33].x=ftf->glyph->bitmap.width; @@ -537,7 +537,7 @@ namespace ui { dialogBoxExists = true; dialogImportant = true; - toggleBlack(); + //toggleBlack(); } void draw(void){ unsigned char i; @@ -976,7 +976,7 @@ namespace ui { fwrite(&bgr, 1,3*SCREEN_WIDTH*SCREEN_HEIGHT,bmp); delete[] pixels; - + fclose(bmp); } @@ -1000,8 +1000,10 @@ DONE: if(dialogImportant){ dialogImportant = false; setFontSize(16); - toggleBlack(); + //toggleBlack(); } + /*if(ui::fontSize != 16) + setFontSize(16);*/ dialogBoxExists = false; } diff --git a/src/world.cpp b/src/world.cpp index 7126095..6118851 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -895,10 +895,10 @@ void World::singleDetect(Entity *e){ * Insure that the entity doesn't fall off either edge of the world. */ - if(e->loc.x<x_start){ // Left bound + if(e->loc.x < x_start){ // Left bound e->vel.x=0; - e->loc.x=x_start + HLINE / 2; + e->loc.x=(float)x_start + HLINE / 2; }else if(e->loc.x + e->width + HLINE > x_start + getWidth(this)){ // Right bound @@ -1071,6 +1071,7 @@ char *World::setToRight(const char *file){ World *World::goWorldLeft(Player *p){ World *tmp; + if(toLeft && p->loc.x < x_start + HLINE * 15){ tmp = loadWorldFromXML(toLeft); @@ -1200,7 +1201,8 @@ void World::save(void){ #include <sstream> -extern int commonAIFunc(NPC *); +extern int commonAIFunc(NPC *); +extern void commonTriggerFunc(Mob *); void World::load(void){ std::string save,data,line; @@ -1449,8 +1451,6 @@ World *loadWorldFromXML(const char *path){ strcpy(currentXML,"xml/"); strcat(currentXML,path); - //std::cout<<currentXML<<std::endl; - xml.LoadFile(currentXML); wxml = xml.FirstChildElement("World"); @@ -1523,7 +1523,11 @@ World *loadWorldFromXML(const char *path){ tmp->addStructure((BUILD_SUB)wxml->UnsignedAttribute("type"),getRand() % tmp->getTheWidth() / 2.0f,100,ptr); else tmp->addStructure((BUILD_SUB)wxml->UnsignedAttribute("type"),spawnx,wxml->FloatAttribute("y"),ptr); + }else if(!strcmp(name,"trigger")){ + tmp->addMob(MS_TRIGGER,wxml->FloatAttribute("x"),0,commonTriggerFunc); + tmp->mob.back()->heyid = wxml->Attribute("id"); } + wxml = wxml->NextSiblingElement(); } |