54 lines
3.2 KiB
C
Executable File
54 lines
3.2 KiB
C
Executable File
/*
|
|
* thread_locals.h - thread locals for each interpreter thread in MAXScript
|
|
*
|
|
* Copyright © John Wainwright 1996
|
|
*
|
|
*/
|
|
|
|
/* thread locals and initial values */
|
|
|
|
def_thread_local( CharStream*, current_stdout, new (GC_IN_HEAP) WindowStream(_T("Script Output")));
|
|
def_thread_local( BOOL, force_listener_open, TRUE); // whether to force listener open on output to it
|
|
|
|
def_thread_local( Value**, current_frame, NULL); // current interpreter frame (for thunk evals)
|
|
def_thread_local( Value**, current_scan_frame, NULL); // current interpreter frame (for gc scanner)
|
|
def_thread_local( Value**, current_locals_frame, NULL); // C++ local frame
|
|
def_thread_local( Value*, current_result, NULL); // C++ current Value* function result
|
|
def_thread_local( long, stack_limit, 1024000); // max stack size to catch recurse loops, 1Mb to start
|
|
def_thread_local( LONG_PTR, stack_base, (LONG_PTR)_alloca(sizeof(int))); // current stack base
|
|
def_thread_local( MSPlugin*, current_plugin, NULL); // current scripted plugin (for plugin thunk evals)
|
|
def_thread_local( Struct*, current_struct, NULL); // current struct (for struct member thunk evals)
|
|
def_thread_local( Value*, current_container, NULL); // current container for nested property access
|
|
def_thread_local( int, container_index, 0); // current container index (if any)
|
|
def_thread_local( Value*, container_prop, NULL); // current container prop (if any)
|
|
def_thread_local( Value*, current_prop, NULL); // most recent prop access (if any)
|
|
|
|
def_thread_local( Value*, source_file, NULL); // current source file
|
|
def_thread_local( int, source_pos, 0); // current pos in source file
|
|
|
|
def_thread_local( BOOL, needs_redraw, 0);
|
|
def_thread_local( BOOL, redraw_mode, 1); // redraw on
|
|
def_thread_local( BOOL, pivot_mode, 0); // pivot off
|
|
def_thread_local( BOOL, undo_mode, 1); // undo on
|
|
def_thread_local( Value*, current_level, &all_objects); // $objects
|
|
def_thread_local( BOOL, use_time_context, 0); // use MAX time slider
|
|
def_thread_local( TimeValue, current_time, 0);
|
|
def_thread_local( Value*, current_coordsys, n_default);
|
|
def_thread_local( Value*, center_mode, n_default);
|
|
|
|
def_thread_local( int, rand_accum, 0); // for our own rand()
|
|
def_thread_local( HANDLE, message_event, NULL); // listener_message synch event
|
|
def_thread_local( int, stream_rand_accum, 0); // for stream_rand()
|
|
|
|
def_thread_local( MSZipPackage*, current_pkg, NULL); // currently open zip package, if any
|
|
|
|
def_thread_local( void*, alloc_frame, NULL); // top frame of allocator stack
|
|
def_thread_local( void*, alloc_tos, NULL); // top of allocator stack
|
|
def_thread_local( void*, alloc_stack_lim, NULL); // limit of allocator stack
|
|
|
|
def_thread_local( Control*, current_controller, NULL); // currently evaluating scripted controller
|
|
|
|
def_thread_local( String*, undo_label, new (GC_PERMANENT) String(_T("MAXScript"))); // current undo label
|
|
def_thread_local( BOOL, try_mode, 0); // try(...)
|
|
def_thread_local( MAXScriptException*, current_exception, NULL); // current exception that was thrown, if any. Non-null only in catch expression
|