private String getEngineDependentEntityName(String entityName) { switch (runner.getEngineType().getId()) { case SOURCE1: return "DT_DOTA_" + entityName; case SOURCE2: return "CDOTA_" + entityName; default: throw new RuntimeException("invalid engine type"); } }
private boolean supportsEngineType(Provides provides) { for (EngineId id : provides.engine()) { if (id == runner.getEngineType().getId()) { return true; } } return false; }
private boolean supportsEngineType(Provides provides) { for (EngineId id : provides.engine()) { if (id == runner.getEngineType().getId()) { return true; } } return false; }
@OnMessage(NetMessages.CSVCMsg_ServerInfo.class) public void processServerInfo(NetMessages.CSVCMsg_ServerInfo serverInfo) { if (engineType.getId() != EngineId.SOURCE2) { return; } Matcher matcher = Pattern.compile("dota_v(\\d+)").matcher(serverInfo.getGameDir()); if (matcher.find()) { int num = Integer.valueOf(matcher.group(1)); ctx.setBuildNumber(num); if (num < 928) { log.warn("This replay is from an early beta version of Dota 2 Reborn (build number %d).", num); log.warn("Entities in this replay probably cannot be read."); log.warn("However, I have not had the opportunity to analyze a replay with that build number."); log.warn("If you wanna help, send it to github@martin.schrodt.org, or contact me on github."); } } else { log.warn("received CSVCMsg_ServerInfo, but could not read build number from it. (game dir '%s')", serverInfo.getGameDir()); } }
@OnMessage(NetMessages.CSVCMsg_ServerInfo.class) public void processServerInfo(NetMessages.CSVCMsg_ServerInfo serverInfo) { if (engineType.getId() != EngineId.SOURCE2) { return; } Matcher matcher = Pattern.compile("dota_v(\\d+)").matcher(serverInfo.getGameDir()); if (matcher.find()) { int num = Integer.valueOf(matcher.group(1)); ctx.setBuildNumber(num); if (num < 928) { log.warn("This replay is from an early beta version of Dota 2 Reborn (build number %d).", num); log.warn("Entities in this replay probably cannot be read."); log.warn("However, I have not had the opportunity to analyze a replay with that build number."); log.warn("If you wanna help, send it to github@martin.schrodt.org, or contact me on github."); } } else { log.warn("received CSVCMsg_ServerInfo, but could not read build number from it. (game dir '%s')", serverInfo.getGameDir()); } }
if (engineType.getId() == EngineId.SOURCE2) {
if (engineType.getId() == EngineId.SOURCE2) {
private void showScoreboard() { boolean isSource1 = runner.getEngineType().getId() == EngineId.SOURCE1; boolean isEarlyBetaFormat = !isSource1 && getEntity("PlayerResource").getDtClass().getFieldPathForName("m_vecPlayerData") == null; if (isSource1 || isEarlyBetaFormat) { showTableWithColumns( new DefaultResolver<Integer>("PlayerResource", "m_iPlayerTeams.%i"), new ColumnDef("Name", new DefaultResolver<String>("PlayerResource", "m_iszPlayerNames.%i")), new ColumnDef("Level", new DefaultResolver<Integer>("PlayerResource", "m_iLevel.%i")), new ColumnDef("K", new DefaultResolver<Integer>("PlayerResource", "m_iKills.%i")), new ColumnDef("D", new DefaultResolver<Integer>("PlayerResource", "m_iDeaths.%i")), new ColumnDef("A", new DefaultResolver<Integer>("PlayerResource", "m_iAssists.%i")), new ColumnDef("Gold", new DefaultResolver<Integer>("PlayerResource", (isSource1 ? "EndScoreAndSpectatorStats." : "") + "m_iTotalEarnedGold.%i")), new ColumnDef("LH", new DefaultResolver<Integer>("PlayerResource", "m_iLastHitCount.%i")), new ColumnDef("DN", new DefaultResolver<Integer>("PlayerResource", "m_iDenyCount.%i")) ); } else { showTableWithColumns( new DefaultResolver<Integer>("PlayerResource", "m_vecPlayerData.%i.m_iPlayerTeam"), new ColumnDef("Name", new DefaultResolver<String>("PlayerResource", "m_vecPlayerData.%i.m_iszPlayerName")), new ColumnDef("Level", new DefaultResolver<Integer>("PlayerResource", "m_vecPlayerTeamData.%i.m_iLevel")), new ColumnDef("K", new DefaultResolver<Integer>("PlayerResource", "m_vecPlayerTeamData.%i.m_iKills")), new ColumnDef("D", new DefaultResolver<Integer>("PlayerResource", "m_vecPlayerTeamData.%i.m_iDeaths")), new ColumnDef("A", new DefaultResolver<Integer>("PlayerResource", "m_vecPlayerTeamData.%i.m_iAssists")), new ColumnDef("Gold", new DefaultResolver<Integer>("Data%n", "m_vecDataTeam.%p.m_iTotalEarnedGold")), new ColumnDef("LH", new DefaultResolver<Integer>("Data%n", "m_vecDataTeam.%p.m_iLastHitCount")), new ColumnDef("DN", new DefaultResolver<Integer>("Data%n", "m_vecDataTeam.%p.m_iDenyCount")) ); } }