MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / cEndSequenceFrame

Function cEndSequenceFrame

scripts/Merc3.cpp:2213–2284  ·  view source on GitHub ↗

$$ACTION Custom End Sequence Update for Player Object [o:PlayerObject] cEndSequenceFrame Custom scripting for the killer end sequence. Parameters: PlayerObject: This must be the playerobject experiencing the end sequence $$END */

Source from the content-addressed store, hash-verified

2211$$END
2212*/
2213void cEndSequenceFrame(int playerobj) {
2214 int room_number, r, r2;
2215 vector player_pos;
2216
2217 Obj_Value(playerobj, VF_GET, OBJV_I_ROOMNUM, &room_number);
2218 Obj_Value(playerobj, VF_GET, OBJV_V_POS, &player_pos);
2219
2220 // lookup starting r;
2221 for (r = 0; (r < N_END_ROOMS) && exit_room_info[r].room_number != room_number; r++) {
2222 }
2223
2224 if (r == N_END_ROOMS)
2225 return;
2226
2227 // okay, we know where the player is
2228 // now look for spew,clutter objects in player room and next room.
2229 char fx_type = -1;
2230 char name[32];
2231 int handle;
2232
2233 for (r2 = r; r2 <= (r + 2); r2++) {
2234 char *cmds = &exit_room_info[r].cmdstr[0];
2235 int cmdlen = (int)strlen(cmds);
2236 int c;
2237 if (r2 == N_END_ROOMS) {
2238 break;
2239 }
2240 for (c = 0; c < cmdlen; c++) {
2241 if (cmds[c] == '.')
2242 fx_type = -1;
2243 else if (cmds[c] == '!')
2244 fx_type = 0;
2245 else if (cmds[c] == '$')
2246 fx_type = 1;
2247 else if (cmds[c] == '#')
2248 fx_type = 2;
2249 else if (cmds[c] == '%')
2250 fx_type = 3;
2251 else if (cmds[c] == '*')
2252 fx_type = 4;
2253 else {
2254 // a spewer,clutter kill, sparker...
2255 // get handle of object
2256 switch (fx_type) {
2257 case 0:
2258 snprintf(name, sizeof(name), "X%d %c", exit_room_info[r].room_number, cmds[c]);
2259 break;
2260 case 1:
2261 case 2:
2262 case 3:
2263 snprintf(name, sizeof(name), "X%d Spew %c", exit_room_info[r].room_number, cmds[c]);
2264 break;
2265 case 4:
2266 snprintf(name, sizeof(name), "X%d Sparks%c", exit_room_info[r].room_number, cmds[c]);
2267 break;
2268 default:
2269 name[0] = 0;
2270 }

Callers 1

CallEventMethod · 0.85

Calls 3

Obj_ValueFunction · 0.85
qObjGetDistanceFunction · 0.85
do_endsequence_fxFunction · 0.85

Tested by

no test coverage detected