diff options
-rw-r--r-- | src/entities.cpp | 8 | ||||
-rw-r--r-- | src/ui.cpp | 16 | ||||
-rw-r--r-- | src/world.cpp | 6 |
3 files changed, 21 insertions, 9 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index 9c5e3cb..f0e7d16 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -120,11 +120,13 @@ Structures::Structures(){ //sets the structure type tex = new Texturec(1,"assets/house1.png"); inWorld = NULL; + name = NULL; } Structures::~Structures(){ - delete inv; + //delete inv; delete tex; - delete[] name; + if(name) + delete[] name; } Mob::Mob(int sub){ @@ -177,7 +179,7 @@ Object::Object(ITEM_ID id, bool qo, const char *pd){ Object::~Object(){ delete[] pickupDialog; - delete inv; + //delete inv; delete tex; delete[] name; } @@ -48,6 +48,7 @@ static char *dialogBoxText = NULL; static char *dialogOptText[4]; static float dialogOptLoc[4][3]; static unsigned char dialogOptCount = 0; +static bool typeOutDone = true; extern void mainLoop(void); @@ -318,18 +319,23 @@ namespace ui { size=strlen(str); // Set the new target string size linc=0; // Reset the incrementers sinc=1; + typeOutDone = false; } /* * Draw the next letter if necessary. */ - if(++sinc==2){ + if(typeOutDone) + return str; + else if(++sinc==2){ sinc=0; strncpy(ret+linc,str+linc,1); // Get next character - if(linc<size)linc++; + if(linc<size) + linc++; + else typeOutDone = true; } return ret; // The buffered string. @@ -533,6 +539,12 @@ namespace ui { break; case SDL_MOUSEBUTTONDOWN: if((e.button.button&SDL_BUTTON_RIGHT)&&dialogBoxExists){ + + if(!typeOutDone){ + typeOutDone = true; + break; + } + for(i=0;i<dialogOptCount;i++){ if(mouse.x > dialogOptLoc[i][0] && mouse.x < dialogOptLoc[i][2] && diff --git a/src/world.cpp b/src/world.cpp index d81d8de..3557121 100644 --- a/src/world.cpp +++ b/src/world.cpp @@ -95,11 +95,9 @@ void World::deleteEntities(void){ } World::~World(void){ - - if(behind){ + if(behind) delete behind; - } - + delete bgTex; delete[] star; delete[] line; |