implemented seed and rand

This commit is contained in:
Kyler Olsen 2025-11-29 14:12:14 -07:00
parent 2086ee503d
commit 8e67857c95
1 changed files with 17 additions and 4 deletions

View File

@ -1123,8 +1123,10 @@ Boolean builtin_pick(InterpreterState *interpreter_state) {
} }
Boolean builtin_rand(InterpreterState *interpreter_state) { Boolean builtin_rand(InterpreterState *interpreter_state) {
(void)interpreter_state; return push_token(interpreter_state, (Token){
return FALSE; .type = TOKEN_DOUBLE,
.double_literal = rand() / RAND_MAX,
});
} }
Boolean builtin_roll(InterpreterState *interpreter_state) { Boolean builtin_roll(InterpreterState *interpreter_state) {
@ -1143,8 +1145,19 @@ Boolean builtin_round(InterpreterState *interpreter_state) {
} }
Boolean builtin_seed(InterpreterState *interpreter_state) { Boolean builtin_seed(InterpreterState *interpreter_state) {
(void)interpreter_state; NUMERIC_TYPE;
return FALSE;
if (type & NUMERIC_FLOAT) {
return FALSE;
}
StackItem *node = interpreter_state->stack;
interpreter_state->stack = interpreter_state->stack->next;
node->next = NULL;
clean_stack(node);
srand(ai);
return TRUE;
} }
Boolean builtin_shl(InterpreterState *interpreter_state) { Boolean builtin_shl(InterpreterState *interpreter_state) {