static void SetComputers( Short num ) { FormPtr frm; ControlPtr cPtr; Word oIdx; if( num > (MaxPlayers - 1) || num < 0 ) { ErrNonFatalDisplayIf( true, "SetComputers: Out of Bounds"); return; } if( stor.tmpcomputers == num ) { return; } frm = FrmGetActiveForm(); /* Unset the old one */ oIdx = FrmGetObjectIndex( frm, cbtnVal[stor.tmpcomputers] ); cPtr = FrmGetObjectPtr( frm, oIdx ); CtlSetValue( cPtr, false ); /* Set new one */ oIdx = FrmGetObjectIndex( frm, cbtnVal[num] ); cPtr = FrmGetObjectPtr( frm, oIdx ); CtlSetValue( cPtr, true ); stor.tmpcomputers = num; if( stor.tmpcomputers + stor.tmpplayers > MaxPlayers ) { SetPlayers( MaxPlayers - stor.tmpcomputers ); } return; }
//Function start mode "new game" void MainGame::StartNewGame() { SetPlayers(); SetStartBoard(); currentmove = 0; currentmaxmove = 0; arbiter = true; }
static Boolean DialogNewGameHandleEvent (EventPtr e) { Boolean handled = false; FormPtr frm; CALLBACK_PROLOGUE switch (e->eType) { case frmOpenEvent: frm = FrmGetActiveForm(); FrmDrawForm(frm); handled = true; break; case ctlSelectEvent: switch(e->data.ctlSelect.controlID) { case btn_Variants_frmNewGame: DialogVarients(); handled = true; break; case btn_OK_frmNewGame: if( DialogGetNames() == false ) { handled = true; /* So, DGN was canceled, so we eat the result */ } break; #if 0 case cbtn_0: SetComputers( 0 ); break; case cbtn_1: SetComputers( 1 ); break; case cbtn_2: SetComputers( 2 ); break; case cbtn_3: SetComputers( 3 ); break; case cbtn_4: SetComputers( 4 ); break; case cbtn_5: SetComputers( 5 ); break; case cbtn_6: SetComputers( 6 ); break; case cbtn_7: SetComputers( 7 ); break; case cbtn_8: SetComputers( 8 ); break; case cbtn_9: SetComputers( 9 ); break; #else case cbtn_0: case cbtn_1: case cbtn_2: case cbtn_3: case cbtn_4: case cbtn_5: case cbtn_6: case cbtn_7: case cbtn_8: case cbtn_9: SetComputers( 0 ); break; #endif case pbtn_1: SetPlayers( 1 ); break; case pbtn_2: SetPlayers( 2 ); break; case pbtn_3: SetPlayers( 3 ); break; case pbtn_4: SetPlayers( 4 ); break; case pbtn_5: SetPlayers( 5 ); break; case pbtn_6: SetPlayers( 6 ); break; case pbtn_7: SetPlayers( 7 ); break; case pbtn_8: SetPlayers( 8 ); break; case pbtn_9: SetPlayers( 9 ); break; case pbtn_10: SetPlayers( 10 ); break; } break; default: break; } CALLBACK_EPILOGUE return handled; }
// This function works as follows. It expects a list of four items. If falling short of that, the missing ones will be padded with AI. If going beyond that, only the first four are effective. RankUp::RankUp( const std::initializer_list<PlayerId>& playerIds ) { SetPlayers( playerIds ); }