void DrawKeepBit(Byte die) { if (stor.cube[die].keep && stor.cube[die].value != 0) { SetFieldTextFromStr(fieldKeepBit[die], CheckSymbol); } else { SetFieldTextFromStr(fieldKeepBit[die], BlankSymbol); } }
void DrawKeepBit(Int die) { if ( stor.YMNWTBYM || (stor.cube[die].keep && stor.cube[die].value > 0) ){ SetFieldTextFromStr(fieldKeepBit[die], CheckSymbol); } else { SetFieldTextFromStr(fieldKeepBit[die], BlankSymbol); } }
Int DialogChooseTwo( CharPtr fText, CharPtr bOne, CharPtr bTwo ) { FormPtr prevForm, frm; Word hitButton; // Save previous form prevForm = FrmGetActiveForm(); // Init new form frm = FrmInitForm( frmChooseTwo ); // Set it FrmSetActiveForm(frm); FrmDrawForm(frm); // Fill it... CtlSetLabel( GetObjectPtr(btnChooseTwo1), bOne ); CtlSetLabel( GetObjectPtr(btnChooseTwo2), bTwo ); SetFieldTextFromStr( fldChooseTwo, fText ); // Set the handler // FrmSetEventHandler(frm, DialogNewGameHandleEvent); hitButton = FrmDoDialog(frm); // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } if( hitButton == btnChooseTwo1 ) return 1; if( hitButton == btnChooseTwo2 ) return 2; return ( -1 ); }
void DrawState() { Short x; Char msg[MaxName+4]; DrawCurrScore(); // Fill the fields x = 0; if ( stor.currplayer > -1 ) { // If there is a game on, fill in the names and scores for ( ; x < stor.numplayers ; x++ ) { StrPrintF( msg, "%d. %s", x+1, stor.player[x].name, NULL ); SetFieldTextFromStr( fieldNamePlayer[x], msg ); DrawPlayerScore( x ); } } // Clears the rest if the fields for ( ; x < MaxPlayers ; x++ ) { ClearFieldText( fieldNamePlayer[x] ); ClearFieldText( fieldScorePlayer[x] ); ClearFieldText( fieldMarkPlayer[x] ); } for ( x = 0 ; x < NumCubes ; x++ ) { DrawCube(x); DrawKeepBit(x); } DrawStayButton(); DrawRollButton(); DrawStatus(); DrawTopStatusButton(); }
void ClearKeepBits(void) { Byte x; for( x = 0; x < NumCubes ; x++ ) { SetFieldTextFromStr( fieldKeepBit[x], BlankSymbol); } }
static void NewGameSetPlayerName( UInt16 field, Int16 player) { if( tmppref[player].type == PlayerNone ) { ClearFieldText( field ); return; } if( tmppref[player].type == PlayerHuman ) { SetFieldTextFromStr( field, tmppref[player].hname ); return; } SetFieldTextFromStr( field, tmppref[player].aname ); return; }
void DrawCurrScore() { Char msg[6]; if ( stor.flash && stor.scorethisroll == 0 ) { StrCopy( msg, NotApplicableString ); } else { StrIToA( msg, stor.scorethisroll ); } SetFieldTextFromStr(scoreRoll, msg); StrIToA( msg, stor.scorethisturn ); SetFieldTextFromStr(scoreTurn, msg); StrIToA( msg, stor.currscore ); SetFieldTextFromStr(scoreTot, msg); }
void DrawPlayerScore(Short player) { Char msg[MaxName]; StrIToA( msg, stor.player[player].score ); SetFieldTextFromStr( fieldScorePlayer[player], msg ); if ( stor.player[player].lost ) { CrossPlayer(player); return; } if ( player == stor.currplayer ) { InvertPlayer(player); return; } if ( player == stor.leader ) { SetFieldTextFromStr( fieldMarkPlayer[player], LeadSymbol ); return; } ClearFieldText( fieldMarkPlayer[player] ); }
DieType DialogChooseThree( Char* fText, DieType c1, DieType c2, DieType c3 ) { FormPtr prevForm, frm; UInt16 hitButton; if( IsAI( GetCurrPlayer() ) ) { return AIChooseThree( c1, c2, c3 ); } // Save previous form prevForm = FrmGetActiveForm(); // Init new form frm = FrmInitForm( frmChooseThree ); // Set it FrmSetActiveForm(frm); FrmDrawForm(frm); // Fill it... CtlSetLabel( GetObjectPtr(btnChooseThree1), val2name[c1] ); CtlSetLabel( GetObjectPtr(btnChooseThree2), val2name[c2] ); CtlSetLabel( GetObjectPtr(btnChooseThree3), val2name[c3] ); SetFieldTextFromStr( fldChooseThree, fText ); // Set the handler // FrmSetEventHandler(frm, DialogNewGameHandleEvent); hitButton = FrmDoDialog(frm); // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } if( hitButton == btnChooseThree1 ) return c1; if( hitButton == btnChooseThree2 ) return c2; if( hitButton == btnChooseThree3 ) return c3; return c1; }
static void FormOpen (void) { FormGadgetType *notelistGadget = GetObjectFromActiveForm (ID_EditorNoteListGadget); FormGadgetType *midekeysGadget = GetObjectFromActiveForm (ID_EditorMidiKeysGadget); notelist_init(¬elist, notelistGadget); midikeys_init(&midikeys, midekeysGadget); SetFieldTextFromStr (ID_EditorNameField, &EditorMidi.name[0]); if (EditorMidi.dbID != 0) LoadSMF(EditorMidi, ¬elist); SeekScrollBar(SCL_BEGIN); FormUpdate(); }
Boolean DialogGetNames() { FormPtr prevForm, frm; Word hitButton; Boolean retVal = false; CharPtr text; Int i; FieldPtr fp; VoidPtr vPtr; Word oIdx; // Save previous form prevForm = FrmGetActiveForm(); // Init new form frm = FrmInitForm( frmGetNames); // Set it FrmSetActiveForm(frm); // Set Controls for( i = stor.tmpplayers ; i<MaxPlayers ; i++ ) { fp = GetObjectPtr( fieldGetNamesPlayer[i] ); FldSetUsable ( fp, false ); FldEraseField( fp ); ShowControl( fieldGetNamesLabel[i], 0 ); } FrmDrawForm(frm); for( i=0; i < stor.tmpplayers ; i++ ) { SetFieldTextFromStr( fieldGetNamesPlayer[i], stor.player[i].name ); } FrmSetFocus( frm, FrmGetObjectIndex(frm, fieldGetNamesPlayer[0]) ); // Set the handler // FrmSetEventHandler(frm, DialogNewGameHandleEvent); hitButton = FrmDoDialog(frm); // Get Controls if ( hitButton == btn_OK_frmGetNames ) { for( i=0 ; i<stor.tmpplayers ; i++ ) { oIdx = FrmGetObjectIndex( frm, fieldGetNamesPlayer[i]); vPtr = FrmGetObjectPtr( frm, oIdx ); text = FldGetTextPtr( vPtr ); StrCopy( stor.player[i].name, text ); } retVal = true; } // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } return retVal; }
void DialogOK ( Word frmname, Short p1, Short p2 ) { FormPtr prevForm, frm; Word hitButton; Char msg[(MaxName * 2) + 128]; Word fieldname = 0; switch ( frmname ) { case frmNextPlayer: fieldname = fldNextPlayer; if( (stor.numplayers + stor.numcomputers) > 1 ) { StrPrintF( msg, NextPlayerString, stor.player[p1].name, stor.player[p2].name, NULL); } else { StrPrintF( msg, "%s", NextSoloPlayerString, NULL ); } break; case frmSuspend: if( (stor.numplayers + stor.numcomputers) == 1 ) { return; } fieldname = fldSuspend; StrPrintF( msg, SuspendString, stor.player[p1].name, stor.player[p2].name, NULL); break; case frmLost: fieldname = fldLost; StrPrintF( msg, LostString, stor.player[p1].name, NULL ); break; case frmLeader: fieldname = fldLeader; StrPrintF( msg, LeaderString, stor.player[p1].name, NULL ); break; case frmWinner: fieldname = fldWinner; StrPrintF( msg, WinnerString, stor.player[p1].name, NULL ); break; case frmNobodyWon: fieldname = fldNobodyWon; StrPrintF( msg, NobodyWonString, NULL ); break; case frmBump: fieldname = fldBump; StrPrintF( msg, BumpString, stor.player[p2].name, stor.player[p1].name, stor.player[p2].score, stor.player[p1].score, NULL ); break; case frmSampler: fieldname = fldSampler; StrPrintF( msg, SamplerString, stor.player[p1].name, NULL ); break; case frmTrainWreck: fieldname = fldTrainWreck; StrPrintF( msg, TrainWreckString, stor.player[p1].name, stor.player[p1].TWcount, stor.nTrainWrecks, NULL ); break; default: ErrDisplay( "DialogOK: fall through: Programmer sucks." ); return; } // Save previous form prevForm = FrmGetActiveForm(); // Init new form frm = FrmInitForm( frmname ); // Set it FrmSetActiveForm(frm); FrmDrawForm(frm); // Fill it... ErrFatalDisplayIf( fieldname == 0, "DialogOK: ZeroField: Programmer sucks." ); SetFieldTextFromStr( fieldname, msg ); // Set the handler // FrmSetEventHandler(frm, DialogNewGameHandleEvent); hitButton = FrmDoDialog(frm); // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } // We don't care about which button, there is only one. }
void DialogVarients() { FormPtr prevForm, frm; Word hitButton; Word fldIndex; Char tmpString[3]; CharPtr text; // Save previous form prevForm = FrmGetActiveForm(); // Init new form frm = FrmInitForm( frmVariants ); // Set it FrmSetActiveForm(frm); FrmDrawForm(frm); // Set Controls CtlSetValue( GetObjectPtr(check_Bump ), stor.flags & flag_Bump ); CtlSetValue( GetObjectPtr(check_Eclipse ), stor.flags & flag_Eclipse ); CtlSetValue( GetObjectPtr(check_Sampler ), stor.flags & flag_Sampler ); CtlSetValue( GetObjectPtr(check_nTW ), stor.flags & flag_nTW ); CtlSetValue( GetObjectPtr(check_FullHouse), stor.flags & flag_FullHouse ); CtlSetValue( GetObjectPtr(check_Suspend ), stor.flags & flag_Suspend ); // Fill in WinScore with previous value. StrIToA( tmpString, stor.nTrainWrecks ); SetFieldTextFromStr( fldnTrainWrecks, tmpString ); StrIToA( tmpString, stor.nSuspend ); SetFieldTextFromStr( fldnSuspend, tmpString ); // Set the focus to this field so the user can just start typing. fldIndex = FrmGetObjectIndex(frm, fldnTrainWrecks); FrmSetFocus( frm, fldIndex ); // Set the handler FrmSetEventHandler(frm, DialogVariantsHandleEvent); hitButton = FrmDoDialog(frm); // Get Controls text = FldGetTextPtr( FrmGetObjectPtr( frm, fldIndex ) ); if( text != NULL ) { stor.nTrainWrecks = StrAToI( text ); } else { stor.nTrainWrecks = 3; } fldIndex = FrmGetObjectIndex(frm, fldnSuspend); text = FldGetTextPtr( FrmGetObjectPtr( frm, fldIndex ) ); if( text != NULL ) { stor.nSuspend = StrAToI( text ); } else { stor.nSuspend = 10; } // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } }
Boolean Ln2SlFormHandleEvent(EventPtr e) { Boolean handled = false; DateType dt = {0, 0}; FormPtr frm = FrmGetFormPtr(Ln2SlForm); switch (e->eType) { case frmOpenEvent: if(gbVgaExists) VgaFormModify(frm, vgaFormModify160To240); DateSecondsToDate(TimGetSeconds(), &dt); DateToAsciiLong(dt.month, dt.day, dt.year + 1904, gPrefdfmts, gAppErrStr); SetFieldTextFromStr(Ln2SlFormInput, gAppErrStr); FrmDrawForm(frm); handled = true; break; case ctlSelectEvent: switch(e->data.ctlSelect.controlID) { case Ln2SlFormOk: FrmReturnToForm(0); handled = true; break; case Ln2SlFormConvert: { HappyDaysFlag dummy; Int16 year, month, day; Char* input; int ret; input = FldGetTextPtr(GetObjectPointer(frm, Ln2SlFormInput)); if ((ret = AnalysisHappyDays(input, &dummy, &year, &month, &day))) { int syear, smonth, sday; int leapyes = CtlGetValue(GetObjectPointer(frm, Ln2SlFormInputLeap)); ret = lunarL2S(lunarRefNum, year, month, day, leapyes, &syear, &smonth, &sday); if (ret == errNone) { Char temp[15]; SysCopyStringResource(temp, DayOfWeek(smonth, sday, syear) + SunString); DateToAsciiLong(smonth, sday, syear, gPrefdfmts, gAppErrStr); StrNCat(gAppErrStr, " [", AppErrStrLen); StrNCat(gAppErrStr, temp, AppErrStrLen); StrNCat(gAppErrStr, "]", AppErrStrLen); FldDrawField(SetFieldTextFromStr(Ln2SlFormResult, gAppErrStr)); } else DisplayInvalidDateErrorString(Ln2SlFormResult); } else { DisplayInvalidDateErrorString(Ln2SlFormResult); } handled = true; break; } default: break; } break; case menuEvent: handled = TextMenuHandleEvent(e->data.menu.itemID, Ln2SlFormInput); break; default: break; } return handled; }
static Boolean DialogNewGameHandleEvent (EventPtr e) { Boolean handled = false; Char tmpString[5]; FormPtr frm; UInt8 p; switch (e->eType) { case frmOpenEvent: frm = FrmGetActiveForm(); FrmDrawForm(frm); handled = true; break; case penUpEvent: if( e->screenX > NewGameUser && e->screenX < (NewGameUser + NewGameUserSize) && e->screenY > NewGameTop && e->screenY < (NewGameTop + 12 * MaxPlayers) ) { p = (UInt8) ( ( e->screenY - NewGameTop ) / 12 ); NewGameToggleType( p ); if( tmppref[p].type != PlayerNone ) { SetFocus( fldNGname0 + p ); } handled = true; } break; case ctlSelectEvent: switch(e->data.ctlSelect.controlID) { case btn_Variants_frmNewGame: DialogVariants(); handled = true; break; case btn_OK_frmNewGame: handled = !NewGamePlayerCount(); break; case btn_Default_frmNewGame: StrIToA( tmpString, DEFAULT_WINSCORE ); SetFieldTextFromStr( fld_winscore, tmpString ); StrIToA( tmpString, DEFAULT_OPENINGROLL ); SetFieldTextFromStr( fld_openingroll, tmpString ); handled = true; break; } break; default: break; } return handled; }
void DialogNewGame() { FormPtr prevForm, frm; UInt16 hitButton; Char tmpString[5]; Char *text; UInt16 x; UInt16 num; // Save previous form prevForm = FrmGetActiveForm(); FrmSetFocus( prevForm, noFocus ); // Init new form frm = FrmInitForm( frmNewGame ); // Set it FrmSetActiveForm(frm); FrmDrawForm(frm); for( x = 0; x < MaxPlayers; x++ ) { tmppref[x].type = GetPlayerType( x ); StrCopy( tmppref[x].hname, pref.player[x].hname ); StrCopy( tmppref[x].aname, pref.player[x].aname ); DrawUserType( x, tmppref[x].type ); NewGameSetPlayerName( fldNGname0+x, x ); } // Fill in WinScore with previous value. if ( pref.winscore > 9999 ) { // Sanity check... pref.winscore = DEFAULT_WINSCORE; } StrIToA( tmpString, pref.winscore ); SetFieldTextFromStr( fld_winscore, tmpString ); // Fill in Opening Roll with previous value. if ( pref.openingroll > pref.winscore || pref.openingroll <= 0 ) { // Sanity check... pref.openingroll = DEFAULT_OPENINGROLL; } StrIToA( tmpString, pref.openingroll ); SetFieldTextFromStr( fld_openingroll, tmpString ); SetFocus( fld_openingroll ); // Set the handler FrmSetEventHandler(frm, DialogNewGameHandleEvent); hitButton = FrmDoDialog(frm); FrmSetFocus( frm, noFocus ); if ( hitButton == btn_OK_frmNewGame ) { /* Get the score needed to win */ pref.winscore = DEFAULT_WINSCORE; text = FldGetTextPtr( GetObjectPtr( fld_winscore ) ); if ( text != NULL ) { num = StrAToI( text ); if( num <= 9999 && num >= 50 ) { pref.winscore = num; } } /* Get the score needed to open game */ pref.openingroll = DEFAULT_OPENINGROLL; text = FldGetTextPtr( GetObjectPtr( fld_openingroll ) ); if ( text != NULL ) { num = StrAToI( text ); if( num <= pref.winscore && num >= 0 ) { pref.openingroll = num; } } pref.totalplayers = 0; for( x = 0; x < MaxPlayers; x++ ) { pref.player[x].type = tmppref[x].type; NewGameGetPlayerName( fldNGname0 + x, x ); StrCopy( pref.player[x].hname, tmppref[x].hname ); StrCopy( pref.player[x].aname, tmppref[x].aname ); if( tmppref[x].type != PlayerNone ) { pref.totalplayers++; } } if( pref.totalplayers > 0 ) { NewGame(); } } // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } DrawState(); }
void DialogNewGame() { FormPtr prevForm, frm; Word hitButton; Char tmpString[5]; CharPtr text; Word fldIndex; Int x; // Save previous form prevForm = FrmGetActiveForm(); // Init new form frm = FrmInitForm( frmNewGame ); // Set it FrmSetActiveForm(frm); FrmDrawForm(frm); // Set Controls // cbtnVal & pbtnVal stor.tmpplayers = stor.numplayers; stor.tmpcomputers = stor.numcomputers; if ( stor.numplayers > 0 ) { x = stor.numplayers; } else { x = 1; } CtlSetValue( GetObjectPtr( pbtnVal[x - 1] ), true ); if ( stor.numcomputers > 0 ) { x = stor.numcomputers; } else { x = 0; } CtlSetValue( GetObjectPtr( cbtnVal[x] ), true ); // Fill in WinScore with previous value. if ( stor.winscore > 9999 ) { // Sanity check... stor.winscore = 300; } StrIToA( tmpString, stor.winscore ); SetFieldTextFromStr( fld_winscore, tmpString ); // Set the focus to this field so the user can just start typing. fldIndex = FrmGetObjectIndex(frm, fld_winscore); FrmSetFocus( frm, fldIndex ); // Set the handler FrmSetEventHandler(frm, DialogNewGameHandleEvent); hitButton = FrmDoDialog(frm); if ( hitButton == btn_OK_frmNewGame ) { text = FldGetTextPtr( FrmGetObjectPtr (frm, fldIndex) ); if ( text != NULL ) { stor.winscore = StrAToI( text ); } else { stor.winscore = 300; } stor.numplayers = stor.tmpplayers; stor.numcomputers = stor.tmpcomputers; } // Delete the form, we're not using it FrmDeleteForm(frm); // Restore previous form. if (prevForm) { FrmSetActiveForm(prevForm); } if ( hitButton == btn_OK_frmNewGame ) { NewGame(); } DrawState(); }
Boolean Sl2LnFormHandleEvent(EventPtr e) { Boolean handled = false; DateType dt = {0, 0}; FormPtr frm = FrmGetFormPtr(Sl2LnForm); switch (e->eType) { case frmOpenEvent: if(gbVgaExists) VgaFormModify(frm, vgaFormModify160To240); DateSecondsToDate(TimGetSeconds(), &dt); DateToAsciiLong(dt.month, dt.day, dt.year + 1904, gPrefdfmts, gAppErrStr); SetFieldTextFromStr(Sl2LnFormInput, gAppErrStr); FrmDrawForm(frm); handled = true; break; case ctlSelectEvent: switch(e->data.ctlSelect.controlID) { case Sl2LnFormConvert: { HappyDaysFlag dummy; Int16 year, month, day; int lyear, lmonth, lday; Char* input; int ret = false; input = FldGetTextPtr(GetObjectPointer(frm, Sl2LnFormInput)); if ((ret = AnalysisHappyDays(input, &dummy, &year, &month, &day))) { int leapyes = 0; ret = lunarS2L(lunarRefNum, year, month, day, &lyear, &lmonth, &lday, &leapyes); if (ret == errNone) { if (leapyes) { StrCopy(gAppErrStr, "#)"); } else { StrCopy(gAppErrStr, "-)"); } DateToAsciiLong(lmonth, lday, lyear, gPrefdfmts, &gAppErrStr[2]); FldDrawField(SetFieldTextFromStr(Sl2LnFormResult, gAppErrStr)); } else DisplayInvalidDateErrorString(Sl2LnFormResult); } else DisplayInvalidDateErrorString(Sl2LnFormResult); handled = true; break; } case Sl2LnFormOk: FrmReturnToForm(0); handled = true; break; default: break; } break; case menuEvent: handled = TextMenuHandleEvent(e->data.menu.itemID, Sl2LnFormInput); break; default: break; } return handled; }