diff --git a/src/info.c b/src/info.c index 4028c187..69cc2ad2 100644 --- a/src/info.c +++ b/src/info.c @@ -3023,9 +3023,9 @@ state_t states[NUMSTATES] = // Above player arrow {SPR_ARRO, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW {SPR_ARRO, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_BOX - {SPR_ITEM, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_ITEM - {SPR_ITMN, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_NUMBER - {SPR_ITMN, FF_FULLBRIGHT|11, 2, {NULL}, 0, 0, S_NULL}, // S_PLAYERARROW_X + {SPR_NULL, FF_FULLBRIGHT, -1, {NULL}, 0, 11, S_NULL}, // S_PLAYERARROW_ITEM + {SPR_ITMN, FF_FULLBRIGHT, 2, {NULL}, 0, 11, S_NULL}, // S_PLAYERARROW_NUMBER + {SPR_ITMN, FF_FULLBRIGHT|11, 2, {NULL}, 0, 11, S_NULL}, // S_PLAYERARROW_X {SPR_WANT, FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_PLAYERARROW_WANTED2}, // S_PLAYERARROW_WANTED1 {SPR_WANT, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_PLAYERARROW_WANTED3}, // S_PLAYERARROW_WANTED2 {SPR_WANT, FF_FULLBRIGHT|2, 3, {NULL}, 0, 0, S_PLAYERARROW_WANTED4}, // S_PLAYERARROW_WANTED3 diff --git a/src/m_menu.c b/src/m_menu.c index c93c3937..21f81555 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -1261,6 +1261,7 @@ enum op_video_fps, op_video_vsync, #ifdef HWRENDER + op_video_md2, op_video_ogl, #endif }; @@ -3153,7 +3154,7 @@ void M_Init(void) #ifdef HWRENDER // Permanently hide some options based on render mode if (rendermode == render_soft) - OP_VideoOptionsMenu[op_video_ogl].status = IT_DISABLED; + OP_VideoOptionsMenu[op_video_ogl].status = OP_VideoOptionsMenu[op_video_md2].status = IT_DISABLED; #endif #ifndef NONET @@ -9684,6 +9685,7 @@ void M_QuitResponse(INT32 ch) ptime = I_GetTime() + NEWTICRATE*2; // Shortened the quit time, used to be 2 seconds Tails 03-26-2001 while (ptime > I_GetTime()) { + V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31); V_DrawSmallScaledPatch(0, 0, 0, W_CachePatchName("GAMEQUIT", PU_CACHE)); // Demo 3 Quit Screen Tails 06-16-2001 I_FinishUpdate(); // Update the screen with the image Tails 06-19-2001 I_Sleep(); diff --git a/src/p_enemy.c b/src/p_enemy.c index ea10b62b..f9b62aab 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -4033,10 +4033,10 @@ static inline boolean PIT_MineExplode(mobj_t *thing) void A_MineExplode(mobj_t *actor) { INT32 bx, by, xl, xh, yl, yh; - explodedist = FixedMul(actor->info->painchance, mapheaderinfo[gamemap-1]->mobj_scale); INT32 d; INT32 locvar1 = var1; mobjtype_t type; + explodedist = FixedMul(actor->info->painchance, mapheaderinfo[gamemap-1]->mobj_scale); #ifdef HAVE_BLUA if (LUA_CallAction("A_MineExplode", actor)) return; @@ -8283,7 +8283,7 @@ void A_JawzChase(mobj_t *actor) if (actor->extravalue1) // Disable looking by setting this return; - if (actor->target && !P_MobjWasRemoved(actor->target)) // No source! + if (!actor->target || P_MobjWasRemoved(actor->target)) // No source! return; player = K_FindJawzTarget(actor, actor->target->player); diff --git a/src/p_mobj.c b/src/p_mobj.c index 5404d27c..cf95dc41 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -6784,7 +6784,7 @@ void P_MobjThinker(mobj_t *mobj) && mobj->target->player->health && mobj->target->player->playerstate != PST_DEAD /*&& players[displayplayer].mo && !players[displayplayer].spectator*/) { - fixed_t scale = 4*mobj->target->scale; + fixed_t scale = 3*mobj->target->scale; mobj->color = mobj->target->color; K_MatchGenericExtraFlags(mobj, mobj->target); @@ -6801,18 +6801,6 @@ void P_MobjThinker(mobj_t *mobj) mobj->angle = R_PointToAngle(mobj->x, mobj->y) + ANGLE_90; // literally only happened because i wanted to ^L^R the SPR_ITEM's - if (!(mobj->target->eflags & MFE_VERTICALFLIP)) - { - mobj->z = mobj->target->z + P_GetPlayerHeight(mobj->target->player)+(16+11)*mapheaderinfo[gamemap-1]->mobj_scale; - mobj->eflags &= ~MFE_VERTICALFLIP; - } - else - { - mobj->z = mobj->target->z - P_GetPlayerHeight(mobj->target->player)+(16+11)*mapheaderinfo[gamemap-1]->mobj_scale; - mobj->eflags |= MFE_VERTICALFLIP; - } - P_SetThingPosition(mobj); - if (!splitscreen) { scale = mobj->target->scale + FixedMul(FixedDiv(abs(P_AproxDistance(players[displayplayer].mo->x-mobj->target->x, @@ -6822,13 +6810,24 @@ void P_MobjThinker(mobj_t *mobj) } mobj->destscale = scale; + if (!(mobj->target->eflags & MFE_VERTICALFLIP)) + { + mobj->z = mobj->target->z + P_GetPlayerHeight(mobj->target->player) + (16*mobj->target->scale); + mobj->eflags &= ~MFE_VERTICALFLIP; + } + else + { + mobj->z = mobj->target->z - P_GetPlayerHeight(mobj->target->player) - (16*mobj->target->scale); + mobj->eflags |= MFE_VERTICALFLIP; + } + P_SetThingPosition(mobj); + if (!mobj->tracer) { mobj_t *overlay = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_OVERLAY); P_SetTarget(&mobj->tracer, overlay); P_SetTarget(&mobj->tracer->target, mobj); P_SetMobjState(mobj->tracer, S_PLAYERARROW_ITEM); - P_SetMobjState(mobj->tracer, S_ITEMICON); // null sprite and frame to be overwritten later P_SetScale(mobj->tracer, (mobj->tracer->destscale = mobj->scale)); } @@ -6930,7 +6929,7 @@ void P_MobjThinker(mobj_t *mobj) else { P_SetMobjState(mobj, S_PLAYERARROW); - P_SetMobjState(mobj->tracer, S_ITEMICON); // null sprite and frame to be overwritten later + P_SetMobjState(mobj->tracer, S_PLAYERARROW_ITEM); } mobj->tracer->destscale = scale; @@ -6980,7 +6979,7 @@ void P_MobjThinker(mobj_t *mobj) && mobj->target->player->health && mobj->target->player->playerstate != PST_DEAD && players[displayplayer].mo && !players[displayplayer].spectator) { - fixed_t scale = 4*mobj->target->scale; + fixed_t scale = 3*mobj->target->scale; if (!K_IsPlayerWanted(mobj->target->player)) { @@ -6998,18 +6997,6 @@ void P_MobjThinker(mobj_t *mobj) mobj->x = mobj->target->x; mobj->y = mobj->target->y; - if (!(mobj->target->eflags & MFE_VERTICALFLIP)) - { - mobj->z = mobj->target->z + (P_GetPlayerHeight(mobj->target->player)+16*mapheaderinfo[gamemap-1]->mobj_scale+(64*mobj->scale)); - mobj->eflags &= ~MFE_VERTICALFLIP; - } - else - { - mobj->z = mobj->target->z - (P_GetPlayerHeight(mobj->target->player)+16*mapheaderinfo[gamemap-1]->mobj_scale+(64*mobj->scale)); - mobj->eflags |= MFE_VERTICALFLIP; - } - P_SetThingPosition(mobj); - if (!splitscreen) { scale = mobj->target->scale + FixedMul(FixedDiv(abs(P_AproxDistance(players[displayplayer].mo->x-mobj->target->x, @@ -7018,6 +7005,18 @@ void P_MobjThinker(mobj_t *mobj) scale = 16*mobj->target->scale; } mobj->destscale = scale; + + if (!(mobj->target->eflags & MFE_VERTICALFLIP)) + { + mobj->z = mobj->target->z + (P_GetPlayerHeight(mobj->target->player)) + (16*mobj->target->scale) + (64*scale); + mobj->eflags &= ~MFE_VERTICALFLIP; + } + else + { + mobj->z = mobj->target->z - (P_GetPlayerHeight(mobj->target->player)) - (16*mobj->target->scale) - (64*scale); + mobj->eflags |= MFE_VERTICALFLIP; + } + P_SetThingPosition(mobj); } else if (mobj->health > 0) { diff --git a/src/y_inter.c b/src/y_inter.c index 3ed06352..6c3226bb 100644 --- a/src/y_inter.c +++ b/src/y_inter.c @@ -417,6 +417,7 @@ void Y_IntermissionDrawer(void) { #define NUMFORNEWCOLUMN 8 INT32 y = 41, gutter = ((data.match.numplayers > NUMFORNEWCOLUMN) ? 0 : (BASEVIDWIDTH/2)); + INT32 dupadjust = (vid.width/vid.dupx), duptweak = (dupadjust - BASEVIDWIDTH)/2; const char *timeheader; if (data.match.rankingsmode) @@ -426,7 +427,7 @@ void Y_IntermissionDrawer(void) // draw the level name V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 12, 0, data.match.levelstring); - V_DrawFill(x, 34, 312, 1, 0); + V_DrawFill((x-3) - duptweak, 34, dupadjust-2, 1, 0); if (data.match.encore) V_DrawCenteredString(-4 + x + BASEVIDWIDTH/2, 12-8, hilicol, "ENCORE MODE"); @@ -434,7 +435,7 @@ void Y_IntermissionDrawer(void) if (!gutter) { V_DrawFill(x+156, 24, 1, 158, 0); - V_DrawFill(x, 182, 312, 1, 0); + V_DrawFill((x-3) - duptweak, 182, dupadjust-2, 1, 0); V_DrawCenteredString(x+6+(BASEVIDWIDTH/2), 24, hilicol, "#"); V_DrawString(x+36+(BASEVIDWIDTH/2), 24, hilicol, "NAME");