コード例 #1
0
void CSymbolEngineReplayFrameController::UpdateOnHeartbeat() {
	if(p_engine_container->symbol_engine_casino()->ConnectedToOHReplay()){
    // No point in shooting frames when connected to OHReplay
    write_log(Preferences()->debug_replayframes(), "[CSymbolEngineReplayFrameController] No replay required, as connected to OHReplay\n");
		return;	
	}
	if (p_lazyscraper->IsIdenticalScrape()) {
	  // There is no benefit in duplicate frames, so we abort
	  write_log(Preferences()->debug_replayframes(), "[CSymbolEngineReplayFrameController] No replay required, as identical scrape\n");
	  return;
	}  
	if ((Preferences()->replay_record() == kShootReplyFramesOnEveryChangeWhilePlaying)	
		  && p_table_state->User()->HasKnownCards()) {
		write_log(Preferences()->debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required (on change while in hand)\n");
	  ShootReplayFrameIfNotYetDone();
	  return;
	}
	if (Preferences()->replay_record() == kShootReplyFramesOnEveryChange) {
	  write_log(Preferences()->debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required (on every change in table-state)\n");
	  ShootReplayFrameIfNotYetDone();
	  return;
	}
  bool shoot_replay_frame_by_formula = p_function_collection->Evaluate(
    k_standard_function_names[k_standard_function_shoot_replay_frame], 
    Preferences()->log_hopper_functions());
  if (shoot_replay_frame_by_formula) {
    write_log(Preferences()->debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required by f$shoot_replay_frame\n");
    ShootReplayFrameIfNotYetDone();
    return;
  }
}
コード例 #2
0
void CSymbolEngineReplayFrameController::UpdateAfterAutoplayerAction(int autoplayer_action_code) {
  if (Preferences()->replay_record() == kShootReplyFramesOnMyTurn) {
    // Replay-frame already in scraper memory, it only needs to be stored.
    // Therefore it does not matter if we shoot "after" action.
    write_log(Preferences()->debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required (on my turn and time to act)\n");
    ShootReplayFrameIfNotYetDone();
  }
}
コード例 #3
0
void CSymbolEngineReplayFrameController::ResetOnHeartbeat() {
  if (p_lazyscraper->IsIdenticalScrape()) {
    // There is no benefit in duplicate frames, so we abort
    write_log(preferences.debug_replayframes(), "[CSymbolEngineReplayFrameController] No replay required, as identical scrape\n");
    return;
  }
  if ((preferences.replay_record() == kShootReplyFramesOnEveryChangeWhilePlaying)	
      && p_table_state->User()->HasKnownCards()) {
        write_log(preferences.debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required (on change while in hand)\n");
    ShootReplayFrameIfNotYetDone();
    return;
  }
  if (preferences.replay_record() == kShootReplyFramesOnEveryChange) {
    write_log(preferences.debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required (on every change in table-state)\n");
    ShootReplayFrameIfNotYetDone();
    return;
  }
	if ((preferences.replay_record() == kShootReplyFramesOnMyTurn)			
		  && p_symbol_engine_autoplayer->ismyturn() 
      && p_autoplayer->autoplayer_engaged()
		  && p_stableframescounter->NumberOfStableFrames() == preferences.frame_delay()) {
    // If it's my turn and we have enough stable frames
    // then we will usually act and shoot a replay-frame on this heartbeat.
    // Shooting exactly once in case of no action is ensured by
    // "p_stableframescounter->NumberOfStableFrames() == preferences.frame_delay()".
    // As NumberOfStableFrames() updates OnHeartbeat we have to put that code here
    // and can~t make use of OnMyTurn();
    write_log(preferences.debug_replayframes(), "[CSymbolEngineReplayFrameController] Replay required (on my turn and time to act)\n");
		ShootReplayFrameIfNotYetDone();
    return;
	}
  // ResetOnHeartbeat() is the last function to be called,
  // whereas the first one depends on circumstances.
  // therefore we reset _replay_recored_this_turn here at the very end. 
	_replay_recored_this_turn = false;
}