#include "ShipUtils.h" #include extern "C" { #include "macros.h" } constexpr f32 fourByThree = 4.0f / 3.0f; extern "C" bool Ship_IsCStringEmpty(const char* str) { return str == NULL || str[0] == '\0'; } // Build vertex coordinates for a quad command // In order of top left, top right, bottom left, then bottom right // Supports flipping the texture horizontally extern "C" void Ship_CreateQuadVertexGroup(Vtx* vtxList, s32 xStart, s32 yStart, s32 width, s32 height, u8 flippedH) { vtxList[0].v.ob[0] = xStart; vtxList[0].v.ob[1] = yStart; vtxList[0].v.tc[0] = (flippedH ? width : 0) << 5; vtxList[0].v.tc[1] = 0 << 5; vtxList[1].v.ob[0] = xStart + width; vtxList[1].v.ob[1] = yStart; vtxList[1].v.tc[0] = (flippedH ? width * 2 : width) << 5; vtxList[1].v.tc[1] = 0 << 5; vtxList[2].v.ob[0] = xStart; vtxList[2].v.ob[1] = yStart + height; vtxList[2].v.tc[0] = (flippedH ? width : 0) << 5; vtxList[2].v.tc[1] = height << 5; vtxList[3].v.ob[0] = xStart + width; vtxList[3].v.ob[1] = yStart + height; vtxList[3].v.tc[0] = (flippedH ? width * 2 : width) << 5; vtxList[3].v.tc[1] = height << 5; }