drug prices were overflowing ints, changed to long
This commit is contained in:
parent
b92d1260bd
commit
8841c3a25e
37
lookups.ino
37
lookups.ino
|
@ -1,37 +0,0 @@
|
||||||
String lookupLocation(GameLocation loc) {
|
|
||||||
switch (loc) {
|
|
||||||
case LOC_BRONX:
|
|
||||||
return F("Bronx");
|
|
||||||
case LOC_GHETTO:
|
|
||||||
return F("Ghetto");
|
|
||||||
case LOC_CENTRAL_PARK:
|
|
||||||
return F("Central Park");
|
|
||||||
case LOC_MANHATTEN:
|
|
||||||
return F("Manhatten");
|
|
||||||
case LOC_CONEY_ISLAND:
|
|
||||||
return F("Coney Island");
|
|
||||||
case LOC_BROOKLYN:
|
|
||||||
return F("Brooklyn");
|
|
||||||
default:
|
|
||||||
return F("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String lookupDrug(Drug drug) {
|
|
||||||
switch (drug) {
|
|
||||||
case DRUG_COCAINE:
|
|
||||||
return F("Cocaine");
|
|
||||||
case DRUG_HEROINE:
|
|
||||||
return F("Heroine");
|
|
||||||
case DRUG_ACID:
|
|
||||||
return F("Acid");
|
|
||||||
case DRUG_WEED:
|
|
||||||
return F("Weed");
|
|
||||||
case DRUG_SPEED:
|
|
||||||
return F("Speed");
|
|
||||||
case DRUG_LUDES:
|
|
||||||
return F("Ludes");
|
|
||||||
default:
|
|
||||||
return F("");
|
|
||||||
}
|
|
||||||
}
|
|
62
menu.ino
62
menu.ino
|
@ -10,6 +10,44 @@ const uint8_t PROGMEM spriteMenuCursor[] = {
|
||||||
0x1f, 0x0e, 0x04,
|
0x1f, 0x0e, 0x04,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
String lookupLocation(GameLocation loc) {
|
||||||
|
switch (loc) {
|
||||||
|
case LOC_BRONX:
|
||||||
|
return F("Bronx");
|
||||||
|
case LOC_GHETTO:
|
||||||
|
return F("Ghetto");
|
||||||
|
case LOC_CENTRAL_PARK:
|
||||||
|
return F("Central Park");
|
||||||
|
case LOC_MANHATTEN:
|
||||||
|
return F("Manhatten");
|
||||||
|
case LOC_CONEY_ISLAND:
|
||||||
|
return F("Coney Island");
|
||||||
|
case LOC_BROOKLYN:
|
||||||
|
return F("Brooklyn");
|
||||||
|
default:
|
||||||
|
return F("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String lookupDrug(Drug drug) {
|
||||||
|
switch (drug) {
|
||||||
|
case DRUG_COCAINE:
|
||||||
|
return F("Cocaine");
|
||||||
|
case DRUG_HEROINE:
|
||||||
|
return F("Heroine");
|
||||||
|
case DRUG_ACID:
|
||||||
|
return F("Acid");
|
||||||
|
case DRUG_WEED:
|
||||||
|
return F("Weed");
|
||||||
|
case DRUG_SPEED:
|
||||||
|
return F("Speed");
|
||||||
|
case DRUG_LUDES:
|
||||||
|
return F("Ludes");
|
||||||
|
default:
|
||||||
|
return F("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void computeMenuSizes(const bool small, const bool cols,
|
void computeMenuSizes(const bool small, const bool cols,
|
||||||
const int itemCount, const String items[],
|
const int itemCount, const String items[],
|
||||||
int& x1, int& x2, int& y) {
|
int& x1, int& x2, int& y) {
|
||||||
|
@ -98,3 +136,27 @@ void drawMenuIndicator(const int menuSelected, const bool small,
|
||||||
Sprites::drawOverwrite(cx - 4, cy + (small ? 1 : 2), spriteMenuCursor, 0);
|
Sprites::drawOverwrite(cx - 4, cy + (small ? 1 : 2), spriteMenuCursor, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void buildDrugMenu(const long extra[6]) {
|
||||||
|
int lengths[6];
|
||||||
|
int col1Max = 0;
|
||||||
|
int col2Max = 0;
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
int extraLen = String(extra[i]).length();
|
||||||
|
lengths[i] = lookupDrug(i).length() + 1 + extraLen;
|
||||||
|
if (i < 3 && lengths[i] > col1Max) col1Max = lengths[i];
|
||||||
|
if (i >= 3 && lengths[i] > col2Max) col2Max = lengths[i];
|
||||||
|
}
|
||||||
|
for (int i = 0; i < 6; i++) {
|
||||||
|
const int colMax = i < 3 ? col1Max : col2Max;
|
||||||
|
menu[i] = lookupDrug(i);
|
||||||
|
menu[i] += F(" ");
|
||||||
|
for (int s = 0; s < colMax - lengths[i]; s++) {
|
||||||
|
menu[i] += F(" ");
|
||||||
|
}
|
||||||
|
menu[i] += String(extra[i]);
|
||||||
|
}
|
||||||
|
menuLength = 6;
|
||||||
|
menuCols = true;
|
||||||
|
menuSmall = col1Max + col2Max > 22;
|
||||||
|
}
|
||||||
|
|
43
slangin.ino
43
slangin.ino
|
@ -73,7 +73,7 @@ bool screenInitialized;
|
||||||
GameState sGameState;
|
GameState sGameState;
|
||||||
GameState sPreviousGameState;
|
GameState sPreviousGameState;
|
||||||
int sCurrentDay;
|
int sCurrentDay;
|
||||||
int sDrugPrices[6];
|
long sDrugPrices[6];
|
||||||
int sCurrentDrug;
|
int sCurrentDrug;
|
||||||
long sCurrentQty;
|
long sCurrentQty;
|
||||||
long sQtyMax;
|
long sQtyMax;
|
||||||
|
@ -91,7 +91,7 @@ GameLocation pLocation;
|
||||||
int pGuns;
|
int pGuns;
|
||||||
int pCapacity;
|
int pCapacity;
|
||||||
int pHealth;
|
int pHealth;
|
||||||
int pInventory[6];
|
long pInventory[6];
|
||||||
|
|
||||||
String menu[8];
|
String menu[8];
|
||||||
int menuLength = 0;
|
int menuLength = 0;
|
||||||
|
@ -142,9 +142,9 @@ void loop() {
|
||||||
case STATE_TURN_MENU:
|
case STATE_TURN_MENU:
|
||||||
drawStatusBar();
|
drawStatusBar();
|
||||||
drawTitle(lookupLocation(pLocation));
|
drawTitle(lookupLocation(pLocation));
|
||||||
menu[0] = F("Trenchcoat");
|
menu[0] = F("Buy Drugs");
|
||||||
menu[1] = F("Buy Drugs");
|
menu[1] = F("Sell Drugs");
|
||||||
menu[2] = F("Sell Drugs");
|
menu[2] = F("Trenchcoat");
|
||||||
menu[3] = F("Jet");
|
menu[3] = F("Jet");
|
||||||
if (pLocation == LOC_BRONX) {
|
if (pLocation == LOC_BRONX) {
|
||||||
menu[4] = F("Loan Shark");
|
menu[4] = F("Loan Shark");
|
||||||
|
@ -508,7 +508,7 @@ void loop() {
|
||||||
void drawStatusBar() {
|
void drawStatusBar() {
|
||||||
if (sGameState == STATE_INVENTORY) {
|
if (sGameState == STATE_INVENTORY) {
|
||||||
const int remaining = playerCapacityRemaining();
|
const int remaining = playerCapacityRemaining();
|
||||||
const int chars = numberChars(remaining);
|
const int chars = String(remaining).length();
|
||||||
const int x = 128 - ((chars + 9) * 4);
|
const int x = 128 - ((chars + 9) * 4);
|
||||||
font3x5.setCursor(1, 0);
|
font3x5.setCursor(1, 0);
|
||||||
font3x5.print(F("Guns "));
|
font3x5.print(F("Guns "));
|
||||||
|
@ -517,7 +517,7 @@ void drawStatusBar() {
|
||||||
font3x5.print(F("Capacity "));
|
font3x5.print(F("Capacity "));
|
||||||
font3x5.print(remaining);
|
font3x5.print(remaining);
|
||||||
} else {
|
} else {
|
||||||
const int chars = numberChars(pMoney);
|
const int chars = String(pMoney).length();
|
||||||
const int x = 128 - (chars * 4);
|
const int x = 128 - (chars * 4);
|
||||||
if (sGameState == STATE_SHARK_MENU || sGameState == STATE_BANK_MENU) {
|
if (sGameState == STATE_SHARK_MENU || sGameState == STATE_BANK_MENU) {
|
||||||
font3x5.setCursor(1, 0);
|
font3x5.setCursor(1, 0);
|
||||||
|
@ -543,35 +543,6 @@ void drawTitle(const String title) {
|
||||||
font4x6.print(title);
|
font4x6.print(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
void buildDrugMenu(int extra[6]) {
|
|
||||||
int lengths[6];
|
|
||||||
int col1Max = 0;
|
|
||||||
int col2Max = 0;
|
|
||||||
for (int i = 0; i < 6; i++) {
|
|
||||||
int extraLen = numberChars(extra[i]);
|
|
||||||
lengths[i] = lookupDrug(i).length() + 1 + extraLen;
|
|
||||||
if (i < 3 && lengths[i] > col1Max) col1Max = lengths[i];
|
|
||||||
if (i >= 3 && lengths[i] > col2Max) col2Max = lengths[i];
|
|
||||||
}
|
|
||||||
for (int i = 0; i < 6; i++) {
|
|
||||||
int colMax = i < 3 ? col1Max : col2Max;
|
|
||||||
menu[i] = lookupDrug(i) + F(" ");
|
|
||||||
for (int s = 0; s < colMax - lengths[i]; s++) {
|
|
||||||
menu[i] += F(" ");
|
|
||||||
}
|
|
||||||
menu[i] += extra[i];
|
|
||||||
}
|
|
||||||
menuLength = 6;
|
|
||||||
menuCols = true;
|
|
||||||
menuSmall = col1Max + col2Max > 22;
|
|
||||||
}
|
|
||||||
|
|
||||||
int numberChars(long num) {
|
|
||||||
int length = 1;
|
|
||||||
while (num /= 10) length++;
|
|
||||||
return length;
|
|
||||||
}
|
|
||||||
|
|
||||||
void drawDialog() {
|
void drawDialog() {
|
||||||
arduboy.drawRoundRect(0, 0, 128, 64, 5, WHITE);
|
arduboy.drawRoundRect(0, 0, 128, 64, 5, WHITE);
|
||||||
if (dialogSmall) {
|
if (dialogSmall) {
|
||||||
|
|
13
states.ino
13
states.ino
|
@ -43,7 +43,7 @@ void incrementDay(const bool withInterest) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void newDayRandomEvent() {
|
void newDayRandomEvent() {
|
||||||
const int eventId = 14; //random(20);
|
const int eventId = 6; //random(20);
|
||||||
sPreviousGameState = STATE_TURN_MENU;
|
sPreviousGameState = STATE_TURN_MENU;
|
||||||
dialogSmall = false;
|
dialogSmall = false;
|
||||||
switch (eventId) {
|
switch (eventId) {
|
||||||
|
@ -196,22 +196,21 @@ void handleMenuAction() {
|
||||||
case 0: // new game
|
case 0: // new game
|
||||||
initializeNewGame();
|
initializeNewGame();
|
||||||
break;
|
break;
|
||||||
// TODO: continue/load saved
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_TURN_MENU:
|
case STATE_TURN_MENU:
|
||||||
sPreviousGameState = STATE_TURN_MENU;
|
sPreviousGameState = STATE_TURN_MENU;
|
||||||
switch (menuSelected) {
|
switch (menuSelected) {
|
||||||
case 0: // trenchcoat
|
case 0: // buy drugs
|
||||||
sGameState = STATE_INVENTORY;
|
|
||||||
break;
|
|
||||||
case 1: // buy drugs
|
|
||||||
sGameState = STATE_BUY_MENU;
|
sGameState = STATE_BUY_MENU;
|
||||||
break;
|
break;
|
||||||
case 2: // sell drugs
|
case 1: // sell drugs
|
||||||
sGameState = STATE_SELL_MENU;
|
sGameState = STATE_SELL_MENU;
|
||||||
break;
|
break;
|
||||||
|
case 2: // trenchcoat
|
||||||
|
sGameState = STATE_INVENTORY;
|
||||||
|
break;
|
||||||
case 3: // jet
|
case 3: // jet
|
||||||
sGameState = STATE_JET_MENU;
|
sGameState = STATE_JET_MENU;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue