add robot_player; re-enable texturing

This commit is contained in:
Zack Buhman 2026-01-05 13:09:28 -06:00
parent a8b1297ddc
commit 31e8291e94
9 changed files with 12678 additions and 28 deletions

View File

@ -5,14 +5,15 @@ all: $(BUILD_TYPE)/d3d10.exe
%.fxo: %.fx %.fxo: %.fx
fxc /Od /Zi /T fx_4_0 /nologo /Fo $@ $< fxc /Od /Zi /T fx_4_0 /nologo /Fo $@ $<
$(BUILD_TYPE)/%.res: %.rc $(BUILD_TYPE)/%.res: %.rc main.fxo
rc.exe /d "_UNICODE" /d "UNICODE" /fo $@ $< rc.exe /d "_UNICODE" /d "UNICODE" /fo $@ $<
$(BUILD_TYPE)/%.obj: %.cpp $(BUILD_TYPE)/%.obj: %.cpp
cl.exe /Fo"$@" /Fd"$(BUILD_TYPE)\vc80.pdb" @"compile_$(BUILD_TYPE).rsp" $< cl.exe /Fo"$@" /Fd"$(BUILD_TYPE)\vc80.pdb" @"compile_$(BUILD_TYPE).rsp" $<
#$(BUILD_TYPE)/cesium_man.obj
OBJS = \ OBJS = \
$(BUILD_TYPE)/cesium_man.obj \ $(BUILD_TYPE)/robot_player.obj \
$(BUILD_TYPE)/main.obj \ $(BUILD_TYPE)/main.obj \
$(BUILD_TYPE)/main.res $(BUILD_TYPE)/main.res

View File

@ -14,7 +14,10 @@
//#include "rigged_figure.hpp" //#include "rigged_figure.hpp"
//#define ROOT_MESH_NODE node_1 //#define ROOT_MESH_NODE node_1
#include "cesium_man.hpp" //#include "cesium_man.hpp"
//#define ROOT_MESH_NODE node_2
#include "robot_player.hpp"
#define ROOT_MESH_NODE node_2 #define ROOT_MESH_NODE node_2
HINSTANCE g_hInstance = NULL; HINSTANCE g_hInstance = NULL;
@ -318,19 +321,19 @@ HRESULT InitDirect3DDevice()
InitDirect3DViews(); InitDirect3DViews();
// texture // texture
HRSRC hSeafloorRes = FindResource(NULL, L"RES_SEAFLOOR", RT_RCDATA); HRSRC hRobotPlayerRes = FindResource(NULL, L"RES_ROBOT_PLAYER", RT_RCDATA);
if (hSeafloorRes == NULL) { if (hRobotPlayerRes == NULL) {
print("FindResource\n"); print("FindResource\n");
return -1; return -1;
} }
DWORD dwSeafloorResSize = SizeofResource(NULL, hSeafloorRes); DWORD dwRobotPlayerResSize = SizeofResource(NULL, hRobotPlayerRes);
HGLOBAL hSeafloorData = LoadResource(NULL, hSeafloorRes); HGLOBAL hRobotPlayerData = LoadResource(NULL, hRobotPlayerRes);
D3D10_SUBRESOURCE_DATA initSeafloorData; D3D10_SUBRESOURCE_DATA initRobotPlayerData;
initSeafloorData.pSysMem = LockResource(hSeafloorData); initRobotPlayerData.pSysMem = LockResource(hRobotPlayerData);
initSeafloorData.SysMemPitch = 256 * 4; initRobotPlayerData.SysMemPitch = 64 * 4;
D3D10_TEXTURE2D_DESC descTexture; D3D10_TEXTURE2D_DESC descTexture;
descTexture.Width = 256; descTexture.Width = 64;
descTexture.Height = 256; descTexture.Height = 64;
descTexture.MipLevels = 1; descTexture.MipLevels = 1;
descTexture.ArraySize = 1; descTexture.ArraySize = 1;
descTexture.Format = DXGI_FORMAT_R8G8B8A8_UNORM; descTexture.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
@ -340,7 +343,7 @@ HRESULT InitDirect3DDevice()
descTexture.BindFlags = D3D10_BIND_SHADER_RESOURCE; descTexture.BindFlags = D3D10_BIND_SHADER_RESOURCE;
descTexture.CPUAccessFlags = 0; descTexture.CPUAccessFlags = 0;
descTexture.MiscFlags = 0; descTexture.MiscFlags = 0;
hr = g_pd3dDevice->CreateTexture2D(&descTexture, &initSeafloorData, &g_pTexture); hr = g_pd3dDevice->CreateTexture2D(&descTexture, &initRobotPlayerData, &g_pTexture);
if (FAILED(hr)) { if (FAILED(hr)) {
print("CreateTexture2D\n"); print("CreateTexture2D\n");
return hr; return hr;
@ -397,7 +400,7 @@ HRESULT InitDirect3DDevice()
{"TEXCOORD", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"TEXCOORD", 0, DXGI_FORMAT_R32G32B32A32_FLOAT, 1, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 2, 0, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"TEXCOORD", 1, DXGI_FORMAT_R32G32B32A32_FLOAT, 2, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
{"NORMAL" , 0, DXGI_FORMAT_R32G32B32_FLOAT, 3, 0, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"NORMAL" , 0, DXGI_FORMAT_R32G32B32_FLOAT, 3, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
//{"TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D10_INPUT_PER_VERTEX_DATA, 0}, {"TEXCOORD", 2, DXGI_FORMAT_R32G32_FLOAT, 4, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
}; };
UINT numElements = (sizeof (layout)) / (sizeof (layout[0])); UINT numElements = (sizeof (layout)) / (sizeof (layout[0]));
@ -425,7 +428,7 @@ HRESULT InitDirect3DDevice()
const Mesh * mesh = ROOT_MESH_NODE.mesh; const Mesh * mesh = ROOT_MESH_NODE.mesh;
const DWORD dwVertexBufferCount = 4; const DWORD dwVertexBufferCount = 5;
ID3D10Buffer * pVertexBuffers[dwVertexBufferCount]; ID3D10Buffer * pVertexBuffers[dwVertexBufferCount];
// position // position
@ -480,13 +483,27 @@ HRESULT InitDirect3DDevice()
return hr; return hr;
} }
// texcoords
bd.Usage = D3D10_USAGE_DEFAULT;
bd.ByteWidth = mesh->texcoord_0_size;
bd.BindFlags = D3D10_BIND_VERTEX_BUFFER;
bd.CPUAccessFlags = 0;
bd.MiscFlags = 0;
initData.pSysMem = mesh->texcoord_0;
hr = g_pd3dDevice->CreateBuffer(&bd, &initData, &pVertexBuffers[4]);
if (FAILED(hr)) {
print("CreateBuffer\n");
return hr;
}
UINT stride[] = { UINT stride[] = {
(sizeof (mesh->position[0])), (sizeof (mesh->position[0])),
(sizeof (mesh->weights_0[0])), (sizeof (mesh->weights_0[0])),
(sizeof (mesh->joints_0[0])), (sizeof (mesh->joints_0[0])),
(sizeof (mesh->normal[0])), (sizeof (mesh->normal[0])),
(sizeof (mesh->texcoord_0[0])),
}; };
UINT offset[] = { 0, 0, 0, 0 }; UINT offset[] = { 0, 0, 0, 0, 0 };
g_pd3dDevice->IASetVertexBuffers(0, dwVertexBufferCount, pVertexBuffers, stride, offset); g_pd3dDevice->IASetVertexBuffers(0, dwVertexBufferCount, pVertexBuffers, stride, offset);
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////
@ -518,7 +535,7 @@ HRESULT InitDirect3DDevice()
D3DXMatrixIdentity(&g_World2); D3DXMatrixIdentity(&g_World2);
D3DXVECTOR3 Eye(0.0f, 1.0f, -1.5f); D3DXVECTOR3 Eye(0.0f, 1.0f, -1.5f);
D3DXVECTOR3 At(0.0f, 0.5f, 0.0f); D3DXVECTOR3 At(0.0f, 1.0f, 0.0f);
D3DXVECTOR3 Up(0.0f, 1.0f, 0.0f); D3DXVECTOR3 Up(0.0f, 1.0f, 0.0f);
D3DXMatrixLookAtLH(&g_View, &Eye, &At, &Up); D3DXMatrixLookAtLH(&g_View, &Eye, &At, &Up);
@ -660,7 +677,7 @@ void Animate(float t)
const AnimationChannel * channels = animation_0__channels; const AnimationChannel * channels = animation_0__channels;
const int channels_length = animation_0__channels__length; const int channels_length = animation_0__channels__length;
t = loop(t, 2.0); t = loop(t, 4.166666030883789);
// find frame and lerp (same accessor for all channels) // find frame and lerp (same accessor for all channels)
const float * input = channels[0].sampler->input; const float * input = channels[0].sampler->input;
@ -668,10 +685,8 @@ void Animate(float t)
int frame_ix = FindFrame(input, input_length, t); int frame_ix = FindFrame(input, input_length, t);
float lerp = Lerp(input, t, frame_ix); float lerp = Lerp(input, t, frame_ix);
//float lerp = 0.0;
// sample all channels // sample all channels
if (1)
for (int i = 0; i < channels_length; i++) { for (int i = 0; i < channels_length; i++) {
const AnimationSampler * sampler = channels[i].sampler; const AnimationSampler * sampler = channels[i].sampler;
NodeInstance * instance = &node_inst[channels[i].target.node_ix]; NodeInstance * instance = &node_inst[channels[i].target.node_ix];
@ -716,7 +731,6 @@ void Animate(float t)
assert(joint_ix >= 0); assert(joint_ix >= 0);
const D3DXMATRIX& inverse_bind_matrix = skin->inverse_bind_matrices[i]; const D3DXMATRIX& inverse_bind_matrix = skin->inverse_bind_matrices[i];
mJoints[i] = inverse_bind_matrix * GlobalTransform(joint_ix); mJoints[i] = inverse_bind_matrix * GlobalTransform(joint_ix);
} }
} }
@ -743,8 +757,8 @@ void Render()
D3DXMATRIX rx; D3DXMATRIX rx;
D3DXMATRIX ry; D3DXMATRIX ry;
D3DXMatrixRotationY(&ry, (float)D3DX_PI * -0.0f + t * 0.5f); D3DXMatrixRotationY(&ry, (float)D3DX_PI * -0.0f + t);
D3DXMatrixRotationZ(&rx, (float)D3DX_PI * -0.0f); D3DXMatrixRotationX(&rx, (float)D3DX_PI * -0.5f);
D3DXMatrixMultiply(&g_World1, D3DXMatrixMultiply(&g_World1,
&rx, &rx,
&ry); &ry);

11
main.fx
View File

@ -10,7 +10,7 @@ float4 vOutputColor;
Texture2D txDiffuse; Texture2D txDiffuse;
SamplerState samLinear { SamplerState samLinear {
Filter = MIN_MAG_MIP_LINEAR; Filter = MIN_MAG_MIP_POINT;
AddressU = Wrap; AddressU = Wrap;
AddressV = Wrap; AddressV = Wrap;
}; };
@ -21,7 +21,7 @@ struct VS_INPUT
float4 Weight : TEXCOORD0; float4 Weight : TEXCOORD0;
float4 Joint : TEXCOORD1; float4 Joint : TEXCOORD1;
float3 Normal : NORMAL; float3 Normal : NORMAL;
//float2 Tex : TEXCOORD; float2 Tex : TEXCOORD2;
}; };
struct PS_INPUT struct PS_INPUT
@ -30,7 +30,7 @@ struct PS_INPUT
float4 Weight : TEXCOORD0; float4 Weight : TEXCOORD0;
float4 Joint : TEXCOORD1; float4 Joint : TEXCOORD1;
float3 Normal : TEXCOORD2; float3 Normal : TEXCOORD2;
//float2 Tex : TEXCOORD1; float2 Tex : TEXCOORD3;
}; };
PS_INPUT VS(VS_INPUT input) PS_INPUT VS(VS_INPUT input)
@ -51,6 +51,7 @@ PS_INPUT VS(VS_INPUT input)
output.Weight = input.Weight; output.Weight = input.Weight;
output.Joint = input.Joint; output.Joint = input.Joint;
output.Tex = input.Tex;
output.Normal = mul(input.Normal, mSkin); output.Normal = mul(input.Normal, mSkin);
output.Normal = mul(output.Normal, World); output.Normal = mul(output.Normal, World);
@ -60,13 +61,15 @@ PS_INPUT VS(VS_INPUT input)
float4 PS(PS_INPUT input) : SV_Target float4 PS(PS_INPUT input) : SV_Target
{ {
float4 texColor = txDiffuse.Sample(samLinear, input.Tex);
float4 intensityColor = float4(0.2, 0.2, 0.2, 0.0); float4 intensityColor = float4(0.2, 0.2, 0.2, 0.0);
for (int i = 0; i < 2; i++) { for (int i = 0; i < 2; i++) {
intensityColor += saturate(dot((float3)vLightDir[i], input.Normal) * vLightColor[i]); intensityColor += saturate(dot((float3)vLightDir[i], input.Normal) * vLightColor[i]);
} }
intensityColor.a = 1; intensityColor.a = 1;
return intensityColor; return texColor * intensityColor;
} }
float4 PSSolid(PS_INPUT input) : SV_Target float4 PSSolid(PS_INPUT input) : SV_Target

View File

@ -1,2 +1,3 @@
RES_MAIN_FXO RCDATA "main.fxo" RES_MAIN_FXO RCDATA "main.fxo"
RES_SEAFLOOR RCDATA "seafloor.data" RES_SEAFLOOR RCDATA "seafloor.data"
RES_ROBOT_PLAYER RCDATA "robot_player.data"

File diff suppressed because one or more lines are too long

9770
robot_player.cpp Normal file

File diff suppressed because it is too large Load Diff

BIN
robot_player.data Normal file

Binary file not shown.

344
robot_player.hpp Normal file
View File

@ -0,0 +1,344 @@
const int skin_0__joints__length = 38;
extern const DWORD accessor_0[];
const int accessor_0__length = 798;
const int accessor_0__size = (sizeof (DWORD)) * 798;
extern const D3DXVECTOR4 accessor_1[];
const int accessor_1__length = 496;
const int accessor_1__size = (sizeof (D3DXVECTOR4)) * 496;
extern const D3DXVECTOR3 accessor_2[];
const int accessor_2__length = 496;
const int accessor_2__size = (sizeof (D3DXVECTOR3)) * 496;
extern const D3DXVECTOR3 accessor_3[];
const int accessor_3__length = 496;
const int accessor_3__size = (sizeof (D3DXVECTOR3)) * 496;
extern const D3DXVECTOR2 accessor_4[];
const int accessor_4__length = 496;
const int accessor_4__size = (sizeof (D3DXVECTOR2)) * 496;
extern const D3DXVECTOR4 accessor_5[];
const int accessor_5__length = 496;
const int accessor_5__size = (sizeof (D3DXVECTOR4)) * 496;
extern const float accessor_6[];
const int accessor_6__length = 101;
const int accessor_6__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_7[];
const int accessor_7__length = 101;
const int accessor_7__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_8[];
const int accessor_8__length = 101;
const int accessor_8__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_9[];
const int accessor_9__length = 101;
const int accessor_9__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_10[];
const int accessor_10__length = 101;
const int accessor_10__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_11[];
const int accessor_11__length = 101;
const int accessor_11__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_12[];
const int accessor_12__length = 101;
const int accessor_12__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_13[];
const int accessor_13__length = 101;
const int accessor_13__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_14[];
const int accessor_14__length = 101;
const int accessor_14__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_15[];
const int accessor_15__length = 101;
const int accessor_15__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_16[];
const int accessor_16__length = 101;
const int accessor_16__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_17[];
const int accessor_17__length = 101;
const int accessor_17__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_18[];
const int accessor_18__length = 101;
const int accessor_18__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_19[];
const int accessor_19__length = 101;
const int accessor_19__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_20[];
const int accessor_20__length = 101;
const int accessor_20__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_21[];
const int accessor_21__length = 101;
const int accessor_21__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_22[];
const int accessor_22__length = 101;
const int accessor_22__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_23[];
const int accessor_23__length = 101;
const int accessor_23__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_24[];
const int accessor_24__length = 101;
const int accessor_24__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_25[];
const int accessor_25__length = 101;
const int accessor_25__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_26[];
const int accessor_26__length = 101;
const int accessor_26__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_27[];
const int accessor_27__length = 101;
const int accessor_27__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_28[];
const int accessor_28__length = 101;
const int accessor_28__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_29[];
const int accessor_29__length = 101;
const int accessor_29__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_30[];
const int accessor_30__length = 101;
const int accessor_30__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_31[];
const int accessor_31__length = 101;
const int accessor_31__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_32[];
const int accessor_32__length = 101;
const int accessor_32__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_33[];
const int accessor_33__length = 101;
const int accessor_33__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_34[];
const int accessor_34__length = 101;
const int accessor_34__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_35[];
const int accessor_35__length = 101;
const int accessor_35__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_36[];
const int accessor_36__length = 101;
const int accessor_36__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_37[];
const int accessor_37__length = 101;
const int accessor_37__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_38[];
const int accessor_38__length = 101;
const int accessor_38__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_39[];
const int accessor_39__length = 101;
const int accessor_39__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_40[];
const int accessor_40__length = 101;
const int accessor_40__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_41[];
const int accessor_41__length = 101;
const int accessor_41__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_42[];
const int accessor_42__length = 101;
const int accessor_42__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_43[];
const int accessor_43__length = 101;
const int accessor_43__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_44[];
const int accessor_44__length = 101;
const int accessor_44__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_45[];
const int accessor_45__length = 101;
const int accessor_45__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_46[];
const int accessor_46__length = 101;
const int accessor_46__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_47[];
const int accessor_47__length = 101;
const int accessor_47__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_48[];
const int accessor_48__length = 101;
const int accessor_48__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_49[];
const int accessor_49__length = 101;
const int accessor_49__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_50[];
const int accessor_50__length = 101;
const int accessor_50__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_51[];
const int accessor_51__length = 101;
const int accessor_51__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_52[];
const int accessor_52__length = 101;
const int accessor_52__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_53[];
const int accessor_53__length = 101;
const int accessor_53__size = (sizeof (D3DXVECTOR3)) * 101;
extern const float accessor_54[];
const int accessor_54__length = 101;
const int accessor_54__size = (sizeof (float)) * 101;
extern const D3DXVECTOR3 accessor_55[];
const int accessor_55__length = 101;
const int accessor_55__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXVECTOR4 accessor_56[];
const int accessor_56__length = 101;
const int accessor_56__size = (sizeof (D3DXVECTOR4)) * 101;
extern const D3DXVECTOR3 accessor_57[];
const int accessor_57__length = 101;
const int accessor_57__size = (sizeof (D3DXVECTOR3)) * 101;
extern const D3DXMATRIX accessor_58[];
const int accessor_58__length = 38;
const int accessor_58__size = (sizeof (D3DXMATRIX)) * 38;
extern const Node node_0;
extern const Node node_1;
extern const Node node_2;
extern const Node node_3;
extern const Node node_4;
extern const Node node_5;
extern const Node node_6;
extern const Node node_7;
extern const Node node_8;
extern const Node node_9;
extern const Node node_10;
extern const Node node_11;
extern const Node node_12;
extern const Node node_13;
extern const Node node_14;
extern const Node node_15;
extern const Node node_16;
extern const Node node_17;
extern const Node node_18;
extern const Node node_19;
extern const Node node_20;
extern const Node node_21;
extern const Node node_22;
extern const Node node_23;
extern const Node node_24;
extern const Node node_25;
extern const Node node_26;
extern const Node node_27;
extern const Node node_28;
extern const Node node_29;
extern const Node node_30;
extern const Node node_31;
extern const Node node_32;
extern const Node node_33;
extern const Node node_34;
extern const Node node_35;
extern const Node node_36;
extern const Node node_37;
extern const Node node_38;
extern const Node node_39;
extern const Node node_40;
extern const Node * nodes[];
const int nodes__length = 41;
extern const AnimationChannel animation_0__channels[];
const int animation_0__channels__length = 39;

BIN
robot_player.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B