/* * pHatt - PalmOS(TM) Hattrick (http://www.hattrick.org) Manager Assistant * * changes.c - list changes between two succesive .hrf's * * 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 2 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, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #include "phat.h" static Char **playerValues; static void fillChangeField(Char *s, UInt16 f, Int8 i) { StrPrintF(s, "%s%i", i > 0 ? "+" : "", i); FldSetTextPtr(getOPtr(f), s); } /* Fill Values in */ static void ShowValues(struct player *p) { Int8 i; if ( playerValues ) { for ( i = 0; i < 12 ; i++ ) MemPtrFree(playerValues[i]); MemPtrFree(playerValues); } playerValues = MemPtrNew(12 * sizeof(Char *)); for ( i = 0; i < 10; i++ ) playerValues[i] = MemPtrNew(maxStrIToALen); fillChangeField(playerValues[0], Player_Experience, p->changes.experience); fillChangeField(playerValues[1], Player_Leadership, p->changes.form); fillChangeField(playerValues[2], Player_Stamina, p->changes.stamina); fillChangeField(playerValues[3], Player_Goaltending, p->changes.goalie); fillChangeField(playerValues[4], Player_Playmaking, p->changes.playmaking); fillChangeField(playerValues[5], Player_Passing, p->changes.passing); fillChangeField(playerValues[6], Player_Winging, p->changes.winging); fillChangeField(playerValues[7], Player_Defending, p->changes.defending); fillChangeField(playerValues[8], Player_Scoring, p->changes.scoring); fillChangeField(playerValues[9], Player_Set_Pieces, p->changes.setting); playerValues[10] = getInCurrency(p->changes.value, true); FldSetTextPtr(getOPtr(Player_Value), playerValues[10]); playerValues[11] = MemPtrNew(p->namelen + 2); StrPrintF(playerValues[11], "%s", p->name); FldSetTextPtr(getOPtr(Player_Name), playerValues[11]); FrmDrawForm(gpForm); } /* Player-Screen Event Handler */ Boolean ChangesScreenEHandler(EventPtr event) { Boolean handled = false; Int8 i; switch (event->eType) { case frmOpenEvent: gpForm = FrmGetActiveForm(); playerValues = NULL; ShowValues(getPlayer(prefs.selectedPlayer)); handled = true; break; case frmCloseEvent: for ( i = 0; i < 12 ; i++ ) MemPtrFree(playerValues[i]); MemPtrFree(playerValues); playerValues = NULL; FrmEraseForm(gpForm); FrmDeleteForm(gpForm); gpForm = 0; handled = true; break; case ctlSelectEvent: switch (event->data.ctlEnter.controlID) { case EditOKButton: FrmGotoForm(prefs.prefsPrevScreen); handled = true; break; } break; case popSelectEvent: switch (event->data.popSelect.listID) { case PlayerSelection: prefs.selectedPlayer = LstGetSelection(getOPtr(PlayerSelection)); ShowValues(getPlayer(prefs.selectedPlayer)); break; default: break; } break; case menuEvent: handled = switchScreen(event->data.menu.itemID); break; default: break; } return handled; }