Skip to content

RTCW MP

Zack Middleton edited this page Oct 16, 2015 · 20 revisions

RTCW-MP engine features missing from Spearmint.

Not required to be usable

I'm not sure if I want to add these. Translation support should use gettext, not a legacy one-off game translation system. It may be possible to add RTCW-style translation support in VMs, I haven't looked into it.

  • Translation support
  • Auto update
  • Open URL

Missing CGame API calls

  • trap_S_StartSoundEx

  • Splines camera support

    • Used by searchlights on mp_dam (in game of the year map pack) and SP.

Modified CGame API calls

  • trap_S_AddLoopingSound in RTCW does not use entityNum, allowing adding looping sounds for flame chunks which do not have individual server entities.

Missing API calls that are only used by SP?

  • trap_S_GetVoiceAmplitude (not used in MP, used in SP)
  • Get tag (only needed for SP, plus I want to change the game code so it isn't needed)
  • Missing some bot system calls (only needed for SP, MP doesn't have bots)

Renderer

  • Custom dlight shaders (available in devil branch for Spearmint 0.2)

  • Missing fireRiseDir in refEntity_t for alphaGen normalzfade and negative deform wave frequency.

  • Missing API for setting MDS (e.g. player model) torso axis and animation frame/oldframe/backlerp.

  • Some stuff from tr_types.h

    • REFLAG_FORCE_LOD. Use low level of detail (used for MDS models only). It's used when player entity is on fire. I think it might be for visual effect, not performance, but I'm not sure.
    • RDF_SNOOPERVIEW makes lightmaps be replaced with white, disables dlights, and disables fog blocks (global GL fog is not disabled). Maybe add RDF_NOLIGHTMAPS and RDF_NOWORLDFOG, and separately manually drop dlights in cgame or add RDF_NODLIGHTS? This is only used in Single Player with Garand's scope mode.
  • refEntity_t::fadeStartTime and fadeEndTime fades RGBA, forces blendfunc blend, forces cull front.

    • This might be replaceable using RF_RGB_TINT/RF_FORCE_ENT_ALPHA and shaderRGBA.
    • However, it lacks forcing cull front and prevents the shader's rgbGen and alphaGen from being used (I'm not sure if that is important).
    • Maybe there should be RF_RGB_MOD and RF_ALPHA_MOD to scale instead of set the RGBA? (It would still interfere with rgbGen/alphaGen entity though.)

Not required?

I don't think these are needed, but might find out otherwise when the game or mods are ported.

  • Dlight overdraw argument allows drawing the dlight image multiple times. I think it can be replaced by ET's dlight intensity. I haven't tested and compared results however.
  • tcGen firerisenv aka TCGEN_FIRERISEENV_MAPPED
    • No shaders in RTCW SP/MP use this. It allows specifying a direction for environment mapping using refEntity_t::fireRiseDir. It is slightly different than the regular environment mapping which calculates direction based on dir between viewOrigin and each vertex.

Port notes

  • Console background needs to be changed for RTCW-MP in CGame VM.
Clone this wiki locally