#include #include #include #include "LibNatal.h" //#pragma optimize("",off) /* Re map Z according to RGB colors by sliding Z pixels over X */ void ZXOffsetCorrection(s16 *pZBuffer,u32 SX,u32 SY) { s16 OneLine[2048]; for (s32 Y = 0 ; Y < (s32)SY ; Y ++ ) { /* Solve Line By Line */ memcpy(OneLine,pZBuffer,SX*2); memset(pZBuffer,0,SX*2); for (s32 X = 0 ; X < (s32)SX ; X ++ ) { s32 NewOffset; if (OneLine[X]) { static float Claqueee = 55.5f; NewOffset = X + Claqueee * (256.0f / (float)OneLine[X]); if ((NewOffset > 0)&&(NewOffset+1 < SX)) { if ((!pZBuffer[NewOffset]) || (pZBuffer[NewOffset] > OneLine[X])) pZBuffer[NewOffset] = OneLine[X]; if ((!pZBuffer[NewOffset+1]) || (pZBuffer[NewOffset+1] > OneLine[X])) pZBuffer[NewOffset+1] = OneLine[X]; } } } pZBuffer += SX; } }