Skip to content

starfactorypixel/Library_DrakeScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

DrakeScript

#include <DrakeScriptCore.hpp>

DrakeScriptMapping ScriptMapObj;
DrakeScriptCore ScriptObj(ScriptMapObj);

static constexpr uint16_t SCRIPTS_COUNT = 2048;
static constexpr uint32_t PSRAM_MALLOC_SIZE = SCRIPTS_COUNT * 512;

uint8_t *script_data = nullptr;

void Setup()
{
	// Выделяем память под скрипты. Любой массив фиксированного размера.
	script_data = (uint8_t *)heap_caps_malloc(PSRAM_MALLOC_SIZE, MALLOC_CAP_SPIRAM);
	if(!script_data)
	{
		DEBUG_LOG_TOPIC("PSRAM", "PSRAM alloc failed\n");
		return;
	}

	// Добавляем скрипт в карту скриптов в массиве script_data
	ScriptMapObj.AddScriptMap(script_id, psram_write_offset, script_length);

	// Передаём мапперу указатель на массив скриптов
	ScriptMapObj.SetScriptsArray(script_data, PSRAM_MALLOC_SIZE);

	// Добавляем доп. опкоды.
	ScriptObj.RegCustomOpcode((opcode_idx_t)0xA0, TestOpcode);
	ScriptObj.RegCustomOpcode((opcode_idx_t)0xA1, TestOpcode);
}

void Logic()
{
	// Выполняем скрипты для id, передавая trigger data в качестве параметров
	ScriptLogic::ScriptObj.Trigger(id, obj.data, obj.length);
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages