diff --git a/src/k_hud.cpp b/src/k_hud.cpp index db6d7e701..1c3fc3faa 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -209,6 +209,7 @@ static patch_t *kp_alagles[10]; static patch_t *kp_blagles[6]; static patch_t *kp_cpu[2]; +patch_t *kp_pickmeup[2]; static patch_t *kp_nametagstem; @@ -867,6 +868,9 @@ void K_LoadKartHUDGraphics(void) HU_UpdatePatch(&kp_cpu[0], "K_CPU1"); HU_UpdatePatch(&kp_cpu[1], "K_CPU2"); + HU_UpdatePatch(&kp_pickmeup[0], "K_PMU1"); + HU_UpdatePatch(&kp_pickmeup[1], "K_PMU2"); + HU_UpdatePatch(&kp_nametagstem, "K_NAMEST"); HU_UpdatePatch(&kp_trickcool[0], "K_COOL1"); diff --git a/src/k_hud.h b/src/k_hud.h index 8fb826f78..8daf58ce1 100644 --- a/src/k_hud.h +++ b/src/k_hud.h @@ -130,6 +130,8 @@ extern patch_t *gen_button_keycenter[2]; extern patch_t *kp_eggnum[6]; extern patch_t *kp_facenum[MAXPLAYERS+1]; +extern patch_t *kp_pickmeup[2]; + extern patch_t *kp_unknownminimap; void K_AddMessage(const char *msg, boolean interrupt, boolean persist); diff --git a/src/k_hud_track.cpp b/src/k_hud_track.cpp index 301f2f52d..2df26bcf3 100644 --- a/src/k_hud_track.cpp +++ b/src/k_hud_track.cpp @@ -278,6 +278,22 @@ private: }}, }; + case MT_JAWZ: + case MT_JAWZ_SHIELD: + case MT_ORBINAUT: + case MT_ORBINAUT_SHIELD: + case MT_DROPTARGET: + case MT_DROPTARGET_SHIELD: + case MT_LANDMINE: + case MT_BANANA: + case MT_BANANA_SHIELD: + return { + { // Near + {2, TICRATE/2, {kp_pickmeup}, 0}, // 1P + {{2, TICRATE/2, {kp_pickmeup}, 0}}, // 4P + }, + }; + default: return { { // Near @@ -874,6 +890,31 @@ void K_drawTargetHUD(const vector3_t* origin, player_t* player) if (tracking) { + fixed_t itemOffset = 36*mobj->scale; + switch (mobj->type) + { + case MT_JAWZ: + case MT_JAWZ_SHIELD: + case MT_ORBINAUT: + case MT_ORBINAUT_SHIELD: + case MT_DROPTARGET: + case MT_DROPTARGET_SHIELD: + case MT_LANDMINE: + case MT_BANANA: + case MT_BANANA_SHIELD: + if (stplyr->mo->eflags & MFE_VERTICALFLIP) + { + pos.z -= itemOffset; + } + else + { + pos.z += itemOffset; + } + break; + default: + break; + } + K_ObjectTracking(&tr.result, &pos, false); targetList.push_back(tr); }