Add parity guards & diagnostics to move-state APIs #215
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Description
BotLibraryEnsureInitializedand its prototype insrc/botlib/interface/botlib_interface.{c,h}which emits the HLIL diagnostic"%s: bot library used before being setup\n"when the library is not initialised.BotMove_ResolveMoveStateinsrc/botlib/ai_move/bot_move.cto centralise move-state handle validation and emit the HLIL parity diagnostic"%s: index %d not setup\n"on invalid handles.src/botlib/ai_move/bot_move.c(BotAllocMoveState,BotResetMoveState,BotInitMoveState,BotMoveToGoal,BotMoveInDirection) to call the new initialisation guard and/or handle resolver, and to clear output where appropriate (notablyBotMoveToGoalnow callsBotClearMoveResultearly).BotMove_ResetAvoidReachimplementation that clearsavoidreach,avoidreachtimesandavoidreachtrieswithmemset, matching HLIL behaviour (andBotResetAvoidReachinbot_goal.calso performs equivalent clears).Testing
BotLib_Print.BotMoveToGoal/BotMoveInDirectionbeforeBotSetupLibraryand with invalid handles to observe the diagnostic output).Codex Task