From 75990d42f8e253150118a18258c75b02c87560bc Mon Sep 17 00:00:00 2001 From: onpon4 Date: Fri, 24 Apr 2015 22:40:50 -0400 Subject: [PATCH] Moved stuff in comms.cpp to intermission.cpp as static functions. --- Makefile | 2 +- src/Starfighter.h | 1 - src/comms.cpp | 147 ------------------------------------------- src/comms.h | 27 -------- src/intermission.cpp | 127 +++++++++++++++++++++++++++++++++++++ 5 files changed, 128 insertions(+), 176 deletions(-) delete mode 100644 src/comms.cpp delete mode 100644 src/comms.h diff --git a/Makefile b/Makefile index a4bce90..345dc4b 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CXXFLAGS ?= -O2 -Wall -g CXXFLAGS += `pkg-config --cflags sdl2 SDL2_image SDL2_mixer` LIBS = `pkg-config --libs sdl2 SDL2_image SDL2_mixer` -OBJS = alien.o audio.o bullet.o cargo.o collectable.o comms.o debris.o events.o explosions.o game.o globals.o graphics.o init.o intermission.o loadSave.o messages.o misc.o missions.o player.o resources.o script.o ship.o shop.o Starfighter.o title.o weapons.o +OBJS = alien.o audio.o bullet.o cargo.o collectable.o debris.o events.o explosions.o game.o globals.o graphics.o init.o intermission.o loadSave.o messages.o misc.o missions.o player.o resources.o script.o ship.o shop.o Starfighter.o title.o weapons.o VERSION = 1.3.2-dev PROG = starfighter diff --git a/src/Starfighter.h b/src/Starfighter.h index fe53e85..79d01a7 100644 --- a/src/Starfighter.h +++ b/src/Starfighter.h @@ -40,7 +40,6 @@ along with this program. If not, see . #include "bullet.h" #include "cargo.h" #include "collectable.h" -#include "comms.h" #include "debris.h" #include "events.h" #include "explosions.h" diff --git a/src/comms.cpp b/src/comms.cpp deleted file mode 100644 index a5993ae..0000000 --- a/src/comms.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* -Copyright (C) 2003 Parallel Realities -Copyright (C) 2011, 2013 Guus Sliepen -Copyright (C) 2015 Julian Marchant - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 3 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "Starfighter.h" - -void updateCommsSurface(SDL_Surface *comms) -{ - if (engine.commsSection == 1) - return; - - char string[255]; - - blevelRect(comms, 0, 10, comms->w - 1, 55, 0x00, 0x22, 0x00); - blit(shape[FACE_CHRIS], 20, 15, comms); - drawString("Chris Bainfield", 80, 15, FONT_WHITE, comms); - sprintf(string, "Current Location: %s", systemPlanet[currentGame.stationedPlanet].name); - drawString(string, 80, 35, FONT_WHITE, comms); -} - -void createCommsSurface(SDL_Surface *comms) -{ - engine.commsSection = 0; - - blevelRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); - - drawString("+++ RECEIVED MESSAGES +++", 115, 80, FONT_GREEN, comms); - - int yOffset; - - for (int i = 0 ; i < 10 ; i++) - { - if ((systemPlanet[i].messageSlot != -1) && (systemPlanet[i].missionCompleted == 0)) - { - yOffset = systemPlanet[i].messageSlot * 60; - blevelRect(comms, 0, 105 + yOffset, comms->w - 1, 55, 0x00, 0x00, 0x77); - blit(shape[systemPlanet[i].faceImage], 20, 110 + yOffset, comms); - drawString(systemPlanet[i].from, 80, 110 + yOffset, FONT_WHITE, comms); - drawString(systemPlanet[i].subject, 80, 130 + yOffset, FONT_CYAN, comms); - drawString("INCOMPLETE", 350, 110 + yOffset, FONT_RED, comms); - } - } - - updateCommsSurface(comms); -} - -static void createMissionDetailSurface(SDL_Surface *comms, int missionSlot) -{ - char name[50]; - char string[2000]; - int y = 50; - int newY = y; - int col = FONT_WHITE; - int mission = -1; - int faceNumber = -1; - FILE *fp; - - for (int i = 0 ; i < 10 ; i++) - { - if ((systemPlanet[i].messageSlot == missionSlot) && (systemPlanet[i].missionCompleted == 0)) - { - mission = systemPlanet[i].messageMission; - } - } - - if (mission == -1) - return; - - blevelRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); - - sprintf(string, "data/brief%d.txt", mission); - - fp = fopen(string, "rb"); - - if (fscanf(fp, "%[^\n]%*c", name) < 1) - { - printf("Warning: Failed to retrieve name from \"%s\"\n", string); - strcpy(name, "Error"); - } - sprintf(string, "+++ Communication with %s +++", name); - drawString(string, -1, 20, FONT_GREEN, comms); - - while (fscanf(fp, "%[^\n]%*c", string) == 1) - { - faceNumber = getFace(string); - if (faceNumber > -1) - { - blit(shape[faceNumber], 10, y, comms); - col = FONT_WHITE; - } - else - { - newY = drawString(string, 80, y, col, 1, comms) + 25; - if (newY < y + 60) - newY += (60 - (newY - y)); - y = newY; - } - } - - fclose(fp); - - blevelRect(comms, 5, comms->h - 28, 180, 20, 0x25, 0x00, 0x00); - drawString("RETURN TO MESSAGES", 15, comms->h - 25, FONT_WHITE, 1, comms); - - engine.commsSection = 1; -} - -void doComms(SDL_Surface *comms) -{ - if ((engine.keyState[KEY_FIRE])) - { - if (engine.commsSection == 0) - { - for (int i = 0 ; i < 4 ; i++) - { - if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 170, 180 + (i * 60), 430, 50)) - { - createMissionDetailSurface(comms, i); - engine.keyState[KEY_FIRE] = 0; - } - } - } - else - { - if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 170, 440, 160, 20)) - { - createCommsSurface(comms); - engine.keyState[KEY_FIRE] = 0; - } - } - } -} diff --git a/src/comms.h b/src/comms.h deleted file mode 100644 index c239e24..0000000 --- a/src/comms.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright (C) 2003 Parallel Realities -Copyright (C) 2011 Guus Sliepen -Copyright (C) 2015 Julian Marchant - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 3 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef COMMS_H -#define COMMS_H - -extern void updateCommsSurface(SDL_Surface *comms); -extern void createCommsSurface(SDL_Surface *comms); -extern void doComms(SDL_Surface *comms); - -#endif diff --git a/src/intermission.cpp b/src/intermission.cpp index 1134d9f..076697b 100644 --- a/src/intermission.cpp +++ b/src/intermission.cpp @@ -353,6 +353,133 @@ static void showStatus(SDL_Surface *infoSurface) blitText(27); } +static void updateCommsSurface(SDL_Surface *comms) +{ + if (engine.commsSection == 1) + return; + + char string[255]; + + blevelRect(comms, 0, 10, comms->w - 1, 55, 0x00, 0x22, 0x00); + blit(shape[FACE_CHRIS], 20, 15, comms); + drawString("Chris Bainfield", 80, 15, FONT_WHITE, comms); + sprintf(string, "Current Location: %s", systemPlanet[currentGame.stationedPlanet].name); + drawString(string, 80, 35, FONT_WHITE, comms); +} + +static void createCommsSurface(SDL_Surface *comms) +{ + engine.commsSection = 0; + + blevelRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); + + drawString("+++ RECEIVED MESSAGES +++", 115, 80, FONT_GREEN, comms); + + int yOffset; + + for (int i = 0 ; i < 10 ; i++) + { + if ((systemPlanet[i].messageSlot != -1) && (systemPlanet[i].missionCompleted == 0)) + { + yOffset = systemPlanet[i].messageSlot * 60; + blevelRect(comms, 0, 105 + yOffset, comms->w - 1, 55, 0x00, 0x00, 0x77); + blit(shape[systemPlanet[i].faceImage], 20, 110 + yOffset, comms); + drawString(systemPlanet[i].from, 80, 110 + yOffset, FONT_WHITE, comms); + drawString(systemPlanet[i].subject, 80, 130 + yOffset, FONT_CYAN, comms); + drawString("INCOMPLETE", 350, 110 + yOffset, FONT_RED, comms); + } + } + + updateCommsSurface(comms); +} + +static void createMissionDetailSurface(SDL_Surface *comms, int missionSlot) +{ + char name[50]; + char string[2000]; + int y = 50; + int newY = y; + int col = FONT_WHITE; + int mission = -1; + int faceNumber = -1; + FILE *fp; + + for (int i = 0 ; i < 10 ; i++) + { + if ((systemPlanet[i].messageSlot == missionSlot) && (systemPlanet[i].missionCompleted == 0)) + { + mission = systemPlanet[i].messageMission; + } + } + + if (mission == -1) + return; + + blevelRect(comms, 0, 0, comms->w - 1, comms->h - 1, 0x00, 0x00, 0x25); + + sprintf(string, "data/brief%d.txt", mission); + + fp = fopen(string, "rb"); + + if (fscanf(fp, "%[^\n]%*c", name) < 1) + { + printf("Warning: Failed to retrieve name from \"%s\"\n", string); + strcpy(name, "Error"); + } + sprintf(string, "+++ Communication with %s +++", name); + drawString(string, -1, 20, FONT_GREEN, comms); + + while (fscanf(fp, "%[^\n]%*c", string) == 1) + { + faceNumber = getFace(string); + if (faceNumber > -1) + { + blit(shape[faceNumber], 10, y, comms); + col = FONT_WHITE; + } + else + { + newY = drawString(string, 80, y, col, 1, comms) + 25; + if (newY < y + 60) + newY += (60 - (newY - y)); + y = newY; + } + } + + fclose(fp); + + blevelRect(comms, 5, comms->h - 28, 180, 20, 0x25, 0x00, 0x00); + drawString("RETURN TO MESSAGES", 15, comms->h - 25, FONT_WHITE, 1, comms); + + engine.commsSection = 1; +} + +static void doComms(SDL_Surface *comms) +{ + if ((engine.keyState[KEY_FIRE])) + { + if (engine.commsSection == 0) + { + for (int i = 0 ; i < 4 ; i++) + { + if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 170, 180 + (i * 60), 430, 50)) + { + createMissionDetailSurface(comms, i); + engine.keyState[KEY_FIRE] = 0; + } + } + } + else + { + if (collision(engine.cursor_x + 13, engine.cursor_y + 13, 6, 6, 170, 440, 160, 20)) + { + createCommsSurface(comms); + engine.keyState[KEY_FIRE] = 0; + } + } + } +} + static void createOptions(SDL_Surface *optionsSurface) { SDL_FillRect(optionsSurface, NULL, black);