Deletes force field (removes from physics system, characters no longer affected).
Takes handle (force field handle from b3dCreateForceField to delete).
Returns nothing.
3D Graphics
Parameters & Returns
Parameters
handleInt
Returns
Void
Quick Summary
Deletes force field (removes from physics system, characters no longer affected).
Takes handle (force field handle from b3dCreateForceField to delete).
Returns nothing.
Technical Exegesis...
Deletes force field (removes from physics system, characters no longer affected). Takes handle (force field handle from b3dCreateForceField to delete). Returns nothing. Removes force field from g_forceFields map, stops affecting characters. Use to cleanup force fields when no longer needed, remove temporary effects, or manage memory.
This function deletes force field.
Deletes force field (removes from physics system, characters no longer affected). Takes handle (force field handle from b3dCreateForceField to delete). Returns nothing. Removes force field from g_forceFields map, stops affecting characters. Use to cleanup force fields when no longer needed, remove temporary effects, or manage memory.
This function deletes force field. Force field deletion: removes field from physics system (erased from g_forceFields map, no longer exists), characters immediately unaffected (force stops applying next physics frame, instant deactivation), handle becomes invalid (cannot use handle after deletion, accessing returns silently). Use cases: (1) Temporary effects (explosion force fields deleted after short duration), (2) Triggered hazards (force fields appear and disappear based on gameplay triggers), (3) Level cleanup (delete all force fields when changing levels or exiting), (4) Dynamic hazards (force fields created and destroyed for moving or timed hazards), (5) Memory management (cleanup unused fields to free resources). Common patterns: temporary effect b3dDeleteForceField(explosionField) after 2 seconds, level cleanup For Each field In allFields: b3dDeleteForceField(field), conditional removal If not needed Then b3dDeleteForceField(hazardField). Typical usage: call when effect ends (explosion dissipates, hazard deactivates), call during level cleanup (remove all fields before level change), call for dynamic gameplay (fields appear and disappear based on state).
Immediate effect: deletion takes effect immediately (force field removed from map, no delay), characters unaffected next frame (force calculation skips deleted fields, instant stop), no lingering effects (force stops applying immediately, characters keep existing momentum). Handle invalidation: handle invalid after deletion (cannot use with other force field functions, accessing handle fails silently), no error on invalid handle (functions return silently if handle not found, graceful failure), recommend tracking deletion (mark handle as invalid or zero after deletion, avoid reuse). Multiple deletions: deleting same handle twice harmless (second deletion fails silently, no error), no handle reuse (deleted handles not recycled, each b3dCreateForceField returns new handle), safe to delete in loops (iterate and delete force fields, no issues). Cleanup example: level unload delete all fields (For handle = 1 To maxHandle: b3dDeleteForceField(handle) remove all), ensures cleanup (no lingering force fields in new level, fresh state), prevents memory leaks (free unused force field data). Temporary explosion: create explosion field (explosionField = b3dCreateForceField(0, x, y, z, 10, 80, 1) strong radial push), delete after duration (wait 0.5 seconds then b3dDeleteForceField(explosionField) remove explosion), impulse effect (short-lived force, removed quickly). Triggered hazard: activate hazard on trigger (hazardField = b3dCreateForceField(...) when trigger activated), deactivate on exit (b3dDeleteForceField(hazardField) when trigger deactivated), dynamic hazards (appear and disappear based on gameplay). Dynamic lifetime: track creation time (fieldCreationTime = currentTime when created), check lifetime each frame (If currentTime - fieldCreationTime > lifetime Then b3dDeleteForceField(field)), automatic cleanup (fields self-delete after duration). Memory management: force fields stored in map (each field uses memory for ForceFieldData struct), deletion frees memory (map entry removed, memory released), unlimited fields but cleanup recommended (can create many fields but delete unused for performance). Handle tracking: store handles in array or list (allForceFields[index] = b3dCreateForceField(...)), delete all from list (For Each field In allForceFields: b3dDeleteForceField(field)), cleanup management (track fields for organized deletion). Silent failure: deleting invalid handle no error (function returns silently, no crash or message), deleting already-deleted handle harmless (second deletion ignored, graceful), robust deletion (safe to call without checking validity). Physics system: deletion removes from g_forceFields map (no longer iterated during UpdatePhysicsSystem, force not calculated), immediate removal (next physics update skips deleted field, no force applied), no cleanup lag (deletion instant, takes effect next frame). Performance: O(1) deletion (map erase operation, constant time), negligible cost (safe to delete many fields, no performance concern), typical use (delete fields infrequently, creation and deletion not per-frame). Validation: silently returns if handle not found (already deleted or invalid handle, no error). Related: b3dCreateForceField creates force field (returns handle, inverse of deletion), b3dPositionForceField moves force field (modify existing field, alternative to delete and recreate), b3dRotateForceField orients force field (modify existing field, alternative to delete and recreate), b3dScaleForceField resizes force field (modify existing field, alternative to delete and recreate).