Skip to content

RTCW SP

zturtleman edited this page Nov 15, 2014 · 10 revisions

RTCW-SP engine features missing from Spearmint. A lot of SP engine features are listed on RTCW-MP and EnemyTerritory page instead of here. My plan is to port them first and then add whatever is needed for SP. SP notes counting all three pages is still incomplete though.

Additional API calls

  • More sound VM API calls.

  • G_BOT_ALLOCATE_CLIENT (modified argument list, takes clientNum) // ZTM: for spearmint it would be a entity/playerNum.

    • ZTM: should it give clientNum and playerNum? or does clientNum (aka connectionNum in game VM) not matter?

Bot AAS Support

  • Missing support for new AAS version and loading multiple AAS files at once

Misc Changes from MP

Server:

  • SV_ClipToEntities: ZTM: Could probably unlink/relink the chair when player moves? Though, might be ignored to allow shooting through it or something.
		// RF, special case, ignore chairs if we are carrying them
		if ( touch->s.eType == ET_PROP && touch->s.otherEntityNum == clip->passEntityNum + 1 ) {
			continue;
		}
  • SV_SendClientSnapshot: Snapshots aren't built for SVF_CASTAI. (NOTE: They are built for bots in q3/rtcw/etc.)
  • SV_CheckTimeouts: SVF_CASTAI don't time out.
  • SV_SetConfigstring: Not sent to SVF_CASTAI (in any gametype, RTCW MP limits to GT_SINGLE_PLAYER).
  • SV_DropClient: Doesn't print disconnect message for SVF_CASTAI.

Client:

  • cl_cin.c: Uses roqFPS. Q3 and RTCW MP do not. Sounds like a good idea.
  • cl_cin.c: Makes sure finishes playing sound after video ends?
  • cl_cin.c: Has letterbox RoQ support, can be done in Spearmint cgame I think.

Renderer

  • I haven't reviewed the SP renderer very much yet. Most of the shader keywords are supported.

  • NOTE: Sky portal changes from MP.

    • If map has a skyportal (passed in a refdef with RDF_SKYBOXPORTAL), does not draw sky for refdef without RDF_SKYBOXPORTAL (e.g., world view point). Spearmint has a RDF_NOSKY which allows this (set on world view point).
    • If refdef has RDF_SKYBOXPORTAL and does not have RDF_DRAWSKYBOX, only draws sky surfaces in sky portal. Spearmint has a RDF_ONLYSKY which allows this (set on skybox portal).
  • NOTE: Corona changes from MP.

    • changed visible argument to flags. bit 1 means visible. bit 2 means use spotLight shader.

Port notes

  • Last argument for trap_R_AddCoronaToScene is now shader handle. Register and use handle for "flareShader" or "spotLight" instead of passing bit flag 2 (to use spotLight). Bit flag 1 means visible, which in Spearmint is a qboolean argument like in RTCW-MP.
Clone this wiki locally