diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 233252536..9f63023d6 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -432,6 +432,7 @@ consvar_t cv_kartdebugdistribution = CVAR_INIT ("kartdebugdistribution", "Off", consvar_t cv_kartdebughuddrop = CVAR_INIT ("kartdebughuddrop", "Off", CV_NETVAR|CV_CHEAT|CV_NOSHOWHELP, CV_OnOff, NULL); static CV_PossibleValue_t kartdebugwaypoint_cons_t[] = {{0, "Off"}, {1, "Forwards"}, {2, "Backwards"}, {0, NULL}}; consvar_t cv_kartdebugwaypoints = CVAR_INIT ("kartdebugwaypoints", "Off", CV_NETVAR|CV_CHEAT|CV_NOSHOWHELP, kartdebugwaypoint_cons_t, NULL); +consvar_t cv_kartdebugbotpredict = CVAR_INIT ("kartdebugbotpredict", "Off", CV_NETVAR|CV_CHEAT|CV_NOSHOWHELP, CV_OnOff, NULL); consvar_t cv_kartdebugcheckpoint = CVAR_INIT ("kartdebugcheckpoint", "Off", CV_NOSHOWHELP, CV_OnOff, NULL); consvar_t cv_kartdebugnodes = CVAR_INIT ("kartdebugnodes", "Off", CV_NOSHOWHELP, CV_OnOff, NULL); diff --git a/src/d_netcmd.h b/src/d_netcmd.h index bd435c49e..288f8eb94 100644 --- a/src/d_netcmd.h +++ b/src/d_netcmd.h @@ -93,7 +93,7 @@ extern consvar_t cv_votetime; extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartallowgiveitem, cv_kartdebugshrink, cv_kartdebugdistribution, cv_kartdebughuddrop; extern consvar_t cv_kartdebugcheckpoint, cv_kartdebugnodes, cv_kartdebugcolorize; -extern consvar_t cv_kartdebugwaypoints; +extern consvar_t cv_kartdebugwaypoints, cv_kartdebugbotpredict; extern consvar_t cv_itemfinder; diff --git a/src/k_bot.c b/src/k_bot.c index c1fc11b6c..3e2ed52ab 100644 --- a/src/k_bot.c +++ b/src/k_bot.c @@ -837,6 +837,23 @@ static INT16 K_FindBotController(mobj_t *mo) return -1; } +static void K_DrawPredictionDebug(botprediction_t *predict, player_t *player) +{ + mobj_t *debugmobj = NULL; + + debugmobj = P_SpawnMobj(predict->x, predict->y, player->mo->z, MT_SPARK); + P_SetMobjState(debugmobj, S_THOK); + + debugmobj->frame &= ~FF_TRANSMASK; + debugmobj->frame |= FF_TRANS20; + + debugmobj->color = SKINCOLOR_ORANGE; + debugmobj->scale *= 2; + + debugmobj->state->tics = 2; + debugmobj->state->nextstate = S_NULL; +} + /*-------------------------------------------------- void K_BuildBotTiccmd(player_t *player, ticcmd_t *cmd) @@ -1158,6 +1175,11 @@ void K_BuildBotTiccmd(player_t *player, ticcmd_t *cmd) } } + if (cv_kartdebugbotpredict.value == 1 && player - players == displayplayers[0]) + { + K_DrawPredictionDebug(predict, player); + } + // Free the prediction we made earlier if (predict != NULL) { diff --git a/src/k_kart.c b/src/k_kart.c index 6621042d8..341aa8f94 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -252,6 +252,7 @@ void K_RegisterKartStuff(void) CV_RegisterVar(&cv_kartdebugdistribution); CV_RegisterVar(&cv_kartdebughuddrop); CV_RegisterVar(&cv_kartdebugwaypoints); + CV_RegisterVar(&cv_kartdebugbotpredict); CV_RegisterVar(&cv_kartdebugcheckpoint); CV_RegisterVar(&cv_kartdebugnodes);