forked from Lainports/opnsense-ports
Taken from: https://github.com/freebsd/freebsd-ports.git Commit id: 5070672073b68be364139bc6b3a89100bd17d331
294 lines
8.2 KiB
C++
294 lines
8.2 KiB
C++
--- x11/viewport.cpp.orig 2012-05-27 06:52:29.000000000 +0900
|
|
+++ x11/viewport.cpp 2012-05-27 06:52:59.000000000 +0900
|
|
@@ -44,8 +44,9 @@
|
|
#include <X11/Xos.h>
|
|
#include <X11/keysym.h>
|
|
}
|
|
-#include <strstream.h>
|
|
+#include <sstream>
|
|
|
|
+using namespace std;
|
|
|
|
#define TICK_BORDER_WIDTH 5 // border width big enough for a tick mark.
|
|
#define TICK_WIDTH 3
|
|
@@ -60,14 +61,14 @@
|
|
#define COL_SHIFT 4
|
|
|
|
// Number of characters across for each menu button.
|
|
-#define QUIT_LINE_LENGTH 5
|
|
-#define NEW_GAME_LINE_LENGTH 9
|
|
+#define QUIT_LINE_LENGTH 4
|
|
+#define NEW_GAME_LINE_LENGTH 13
|
|
#define HUMANS_NUM_LINE_LENGTH 9
|
|
#define ENEMIES_NUM_LINE_LENGTH 11
|
|
#define ENEMIES_REFILL_LINE_LENGTH 13
|
|
#define CONTROLS_LINE_LENGTH 13
|
|
#define LEARN_CONTROLS_LINE_LENGTH 12
|
|
-#define STYLE_LINE_LENGTH 11
|
|
+#define STYLE_LINE_LENGTH 16
|
|
#define SCENARIOS_LINE_LENGTH 9
|
|
#define LEVELS_LINE_LENGTH 6
|
|
#define KILL_LINE_LENGTH 16
|
|
@@ -1056,20 +1057,18 @@
|
|
|
|
void Viewport::set_menu_humans_num(int val) {
|
|
assert(menusNum > menuHumansNum);
|
|
- ostrstream str;
|
|
- str << val << ends;
|
|
- ((WritePanel *)menus[menuHumansNum])->set_value(str.str());
|
|
- delete str.str();
|
|
+ stringstream str;
|
|
+ str << val;
|
|
+ ((WritePanel *)menus[menuHumansNum])->set_value(str.str().c_str());
|
|
}
|
|
|
|
|
|
|
|
void Viewport::set_menu_enemies_num(int val) {
|
|
assert(menusNum > menuEnemiesNum);
|
|
- ostrstream str;
|
|
- str << val << ends;
|
|
- ((WritePanel *)menus[menuEnemiesNum])->set_value(str.str());
|
|
- delete str.str();
|
|
+ stringstream str;
|
|
+ str << val;
|
|
+ ((WritePanel *)menus[menuEnemiesNum])->set_value(str.str().c_str());
|
|
}
|
|
|
|
|
|
@@ -1128,10 +1127,9 @@
|
|
|
|
void Viewport::set_quanta(Quanta quanta) {
|
|
assert(menusNum > menuQuanta);
|
|
- ostrstream str;
|
|
- str << quanta << ends;
|
|
- ((WritePanel *)menus[menuQuanta])->set_value(str.str());
|
|
- delete str.str();
|
|
+ stringstream str;
|
|
+ str << quanta;
|
|
+ ((WritePanel *)menus[menuQuanta])->set_value(str.str().c_str());
|
|
}
|
|
|
|
|
|
@@ -1144,33 +1142,27 @@
|
|
|
|
|
|
void Viewport::set_humans_playing(int val) {
|
|
- ostrstream msg;
|
|
+ stringstream msg;
|
|
if (val == 1) {
|
|
- msg << "1 Human" << ends;
|
|
+ msg << "1 Human";
|
|
}
|
|
else {
|
|
- msg << val << " Humans" << ends;
|
|
+ msg << val << " Humans";
|
|
}
|
|
- char *msg_str = msg.str();
|
|
-
|
|
- humansPlaying->set_message(msg_str);
|
|
- delete msg_str;
|
|
+ humansPlaying->set_message(msg.str().c_str());
|
|
}
|
|
|
|
|
|
|
|
void Viewport::set_enemies_playing(int val) {
|
|
- ostrstream msg;
|
|
+ stringstream msg;
|
|
if (val == 1) {
|
|
- msg << "1 Enemy" << ends;
|
|
+ msg << "1 Enemy";
|
|
}
|
|
else {
|
|
- msg << val << " Enemies" << ends;
|
|
+ msg << val << " Enemies";
|
|
}
|
|
- char *msg_str = msg.str();
|
|
-
|
|
- enemiesPlaying->set_message(msg_str);
|
|
- delete msg_str;
|
|
+ enemiesPlaying->set_message(msg.str().c_str());
|
|
}
|
|
|
|
|
|
@@ -1632,7 +1624,7 @@
|
|
// Would be much better to put the radio-button logic in the Panel classes.
|
|
if (pClosure->radio) {
|
|
// SGI compiler says you can't cast void* to Boolean.
|
|
- Boolean bValue = (Boolean)(int)value;
|
|
+ Boolean bValue = (Boolean)(long)value;
|
|
if (!bValue) {
|
|
((TogglePanel*)panel)->set_value(True);
|
|
}
|
|
@@ -1701,7 +1693,7 @@
|
|
pos.y += xvars.fontSize[dpyNum].height;
|
|
|
|
for (int n = 0; n < DIFFICULTY_LEVELS_NUM; n++) {
|
|
- ostrstream str;
|
|
+ stringstream str;
|
|
str << "[" << n;
|
|
if (n == DIFF_NORMAL) {
|
|
str << ",space] ";
|
|
@@ -1709,10 +1701,9 @@
|
|
else {
|
|
str << "] ";
|
|
}
|
|
- str << difficultyLevels[n].name << ends;
|
|
+ str << difficultyLevels[n].name;
|
|
pos.y += xvars.fontSize[dpyNum].height;
|
|
- draw_string(pos,str.str());
|
|
- delete str.str();
|
|
+ draw_string(pos,str.str().c_str());
|
|
}
|
|
|
|
XSetForeground(xvars.dpy[dpyNum],xvars.gc[dpyNum],
|
|
@@ -1733,7 +1724,7 @@
|
|
|
|
|
|
|
|
-void Viewport::draw_string(const Pos &pos,char *msg) {
|
|
+void Viewport::draw_string(const Pos &pos,const char *msg) {
|
|
XDrawString(xvars.dpy[dpyNum],arena,
|
|
xvars.gc[dpyNum],
|
|
pos.x,pos.y + xvars.font[dpyNum]->max_bounds.ascent,
|
|
@@ -1930,7 +1921,7 @@
|
|
new ButtonPanel(dpyNum,xvars,toplevel,
|
|
pos,newGameUnit,
|
|
Viewport::panel_callback,panelClosures.get(menuNewGame),
|
|
- "New Game");
|
|
+ "New Game (F2)");
|
|
assert(p);
|
|
p->set_background(menuBg,False);
|
|
pos.x += newGameUnit.width;
|
|
@@ -2016,7 +2007,7 @@
|
|
new TextPanel(dpyNum,xvars,toplevel,
|
|
pos,styleUnit,
|
|
NULL,NULL,
|
|
- "Game style:");
|
|
+ "Game style: (F3)");
|
|
assert(p);
|
|
// p->set_background(menuBg,False);
|
|
pos.x += styleUnit.width;
|
|
@@ -2194,33 +2185,24 @@
|
|
}
|
|
|
|
const IntelStatus *status = intel->get_intel_status();
|
|
+ statuses[statusName]->set_message(status->name);
|
|
+
|
|
+ statuses[statusClassName]->set_message(status->className);
|
|
|
|
- ostrstream name;
|
|
- name << status->name << ends;
|
|
- statuses[statusName]->set_message(name.str());
|
|
- delete name.str();
|
|
-
|
|
- ostrstream className;
|
|
- className << status->className << ends;
|
|
- statuses[statusClassName]->set_message(className.str());
|
|
- delete className.str();
|
|
-
|
|
- ostrstream health;
|
|
+ stringstream health;
|
|
if (status->health == -1) {
|
|
- health << "Dead" << ends;
|
|
+ health << "Dead";
|
|
}
|
|
else {
|
|
- health << status->health << " Health" << ends;
|
|
+ health << status->health << " Health";
|
|
}
|
|
- statuses[statusHealth]->set_message(health.str());
|
|
- delete health.str();
|
|
+ statuses[statusHealth]->set_message(health.str().c_str());
|
|
|
|
- ostrstream mass;
|
|
- mass << status->mass << " Mass" << ends;
|
|
- statuses[statusMass]->set_message(mass.str());
|
|
- delete mass.str();
|
|
+ stringstream mass;
|
|
+ mass << status->mass << " Mass";
|
|
+ statuses[statusMass]->set_message(mass.str().c_str());
|
|
|
|
- ostrstream weapon;
|
|
+ stringstream weapon;
|
|
if (status->weaponClassId == A_None) {
|
|
weapon << "No Weapon";
|
|
}
|
|
@@ -2230,62 +2212,56 @@
|
|
if (status->ammo != PH_AMMO_UNLIMITED) {
|
|
weapon << " (" << status->ammo << ")";
|
|
}
|
|
- weapon << ends;
|
|
statuses[statusWeapon]->
|
|
set_foreground(status->weaponReady ?
|
|
xvars.green[dpyNum] : xvars.red[dpyNum],False);
|
|
- statuses[statusWeapon]->set_message(weapon.str());
|
|
- delete weapon.str();
|
|
+ statuses[statusWeapon]->set_message(weapon.str().c_str());
|
|
|
|
- ostrstream item;
|
|
+ stringstream item;
|
|
if (status->itemClassId == A_None) {
|
|
item << "No Item";
|
|
}
|
|
else {
|
|
item << status->item << " (" << status->itemCount << ")";
|
|
}
|
|
- item << ends;
|
|
- statuses[statusItem]->set_message(item.str());
|
|
- delete item.str();
|
|
+ statuses[statusItem]->set_message(item.str().c_str());
|
|
|
|
- ostrstream livesHKills;
|
|
+ stringstream livesHKills;
|
|
if (styleInfo->get_game_style_type() == EXTENDED) {
|
|
// Takes soups into account.
|
|
livesHKills << (status->humanKills - status->soups)
|
|
- << " Human Kills" << ends;
|
|
+ << " Human Kills";
|
|
}
|
|
else {
|
|
if (status->lives == IT_INFINITE_LIVES) {
|
|
// Does this case ever happen? I don't think so.
|
|
- livesHKills << "Unlimited Lives" << ends;
|
|
+ livesHKills << "Unlimited Lives";
|
|
}
|
|
else {
|
|
if (status->lives == 1) {
|
|
- livesHKills << "1 Life" << ends;
|
|
+ livesHKills << "1 Life";
|
|
}
|
|
else {
|
|
- livesHKills << status->lives << " Lives" << ends;
|
|
+ livesHKills << status->lives << " Lives";
|
|
}
|
|
}
|
|
}
|
|
- statuses[statusLivesHKills]->set_message(livesHKills.str());
|
|
- delete livesHKills.str();
|
|
+ statuses[statusLivesHKills]->set_message(livesHKills.str().c_str());
|
|
|
|
- ostrstream killsMKills;
|
|
+ stringstream killsMKills;
|
|
if (styleInfo->get_game_style_type() == EXTENDED) {
|
|
- killsMKills << status->enemyKills << " Machine Kills" << ends;
|
|
+ killsMKills << status->enemyKills << " Machine Kills";
|
|
}
|
|
else {
|
|
int kills = status->humanKills + status->enemyKills;
|
|
if (kills == 1) {
|
|
- killsMKills << "1 Kill" << ends;
|
|
+ killsMKills << "1 Kill";
|
|
}
|
|
else {
|
|
- killsMKills << kills << " Kills" << ends;
|
|
+ killsMKills << kills << " Kills";
|
|
}
|
|
}
|
|
- statuses[statusKillsMKills]->set_message(killsMKills.str());
|
|
- delete killsMKills.str();
|
|
+ statuses[statusKillsMKills]->set_message(killsMKills.str().c_str());
|
|
}
|
|
|
|
|