int main(int index) { float mat1[16]; float trans = Pos->translate; float rot = Pos->rotate; matrixLoadScale(mat1, 2.f, 2.f, 2.f); matrixTranslate(mat1, 0.f, 0.f, trans); matrixRotate(mat1, 90.f, 0.f, 0.f, 1.f); matrixRotate(mat1, rot, 1.f, 0.f, 0.f); vpLoadModelMatrix(mat1); // Draw the lighting effect in the strip and fill the Z buffer. drawSimpleMesh(NAMED_mesh); // Start of images. bindProgramStore(NAMED_PSImages); bindProgramFragment(NAMED_PFImages); bindProgramVertex(NAMED_PVImages); float focusPos = Pos->focus; int focusID = 0; int lastFocusID = loadI32(2, STATE_LAST_FOCUS); int imgCount = 13; if (trans > (-.3f)) { focusID = -1.0f - focusPos; if (focusID >= imgCount) { focusID = -1; } } else { focusID = -1; } /* if (focusID != lastFocusID) { if (lastFocusID >= 0) { uploadToTexture(con, env->tex[lastFocusID], 1); } if (focusID >= 0) { uploadToTexture(con, env->tex[focusID], 0); } } */ lastFocus = focusID; int triangleOffsetsCount = Pos->triangleOffsetCount; int imgId = 0; for (imgId=1; imgId <= imgCount; imgId++) { float pos = focusPos + imgId + 0.4f; int offset = (int)floorf(pos * 2.f); pos = pos - 0.75f; offset = offset + triangleOffsetsCount / 2; if (!((offset < 0) || (offset >= triangleOffsetsCount))) { int start = offset -2; int end = offset + 2; if (start < 0) { start = 0; } if (end >= triangleOffsetsCount) { end = triangleOffsetsCount-1; } bindTexture(NAMED_PFImages, 0, loadI32(0, imgId - 1)); matrixLoadTranslate(mat1, -pos - loadF(5, triangleOffsetsCount / 2), 0, 0); vpLoadTextureMatrix(mat1); drawSimpleMeshRange(NAMED_mesh, loadI32(4, start), (loadI32(4, end) - loadI32(4, start))); } } return 0; }
void main() { char x[512]; char buffer[512]; int size; while(1) { interrupt(33,0,"cxxxx][===blackdos===> \0",0,0); /* Takes command line input */ SCANS(x); PRINTS("\r\n\0"); if(strcmp(x,"boot\0") == 1) { BOOT; } else if(strcmp(x,"cls\0") == 1) { clr(); } else if(strcmp(x,"help\0") == 1) { help(); } else if(strcmp(x,"echo\0") == 1) { echo(x+5); } else if(strcmp(x,"type\0") == 1) { loadF(x+5,buffer,size); } else if(strcmp(x,"run\0") == 1) { runF(x+4); } else if(strcmp(x,"del\0") == 1) { delF(x+4); } else if(strcmp(x,"dir\0") == 1) { dir(); } else if(strcmp(x,"tweet\0") == 1) { tweet(x+6); } else if(strcmp(x,"cp\0") == 1) { copy(x+3); } else { interrupt(33,0,"\r\nBad command or filename\r\n\0",0,0); } interrupt(33,0,"\r\n\0",0,0); } END; }