fix PropPtr hw exception
This commit is contained in:
parent
9956b67a5c
commit
797b29f8ee
@ -227,7 +227,7 @@ u_short timer = 0;
|
||||
|
||||
// Cam stuff
|
||||
|
||||
int camMode = 5;
|
||||
int camMode = 0;
|
||||
|
||||
long timeB = 0;
|
||||
|
||||
@ -395,10 +395,6 @@ int main() {
|
||||
|
||||
VECTOR objAngleToCam = {0, 0, 0, 0};
|
||||
|
||||
//~ long objAngleToCam = 0;
|
||||
|
||||
|
||||
|
||||
int angle = 0; //PSX units = 4096 == 360° = 2Pi
|
||||
|
||||
int dist = 0; //PSX units
|
||||
@ -473,10 +469,13 @@ int main() {
|
||||
objAngleToCam.vx = patan( posToCam.vx,posToCam.vy );
|
||||
|
||||
//~ objAngleToCam.vz = patan( posToCam.vz,posToCam.vy );
|
||||
|
||||
//~ objAngleToCam.vx = patan( psqrt(posToCam.vx * posToCam.vx + posToCam.vy * posToCam.vy), posToCam.vy );
|
||||
|
||||
//~ meshPlan.rot->vx = -( (objAngleToCam.vx >> 4) - 3076 ) ;
|
||||
|
||||
//~ meshPlan.rot->vx = (( (objAngleToCam.vx >> 4) - 3076 ) * ( (objAngleToCam.vz >> 4) - 3076 ) >> 12) * (nsin(posToCam.vz) >> 10 < 0 ? -1 : 1);
|
||||
|
||||
//~ meshPlan.rot->vx = ( (objAngleToCam.vx >> 4) - 3076 ) * ( (objAngleToCam.vz >> 4) - 3076 ) >> 12 ;
|
||||
|
||||
meshPlan.rot->vy = -( (objAngleToCam.vy >> 4) + 1024 ) ;
|
||||
@ -772,7 +771,7 @@ int main() {
|
||||
camPath.pos = 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Pre calculated sqrt ( see psqrt() )
|
||||
|
||||
dist = psqrt( (posToActor.vx * posToActor.vx ) + (posToActor.vz * posToActor.vz));
|
||||
@ -791,15 +790,19 @@ int main() {
|
||||
//~ FntPrint("Cam %d, %d, %d\n", camera.pos.vx, camera.pos.vy, camera.pos.vz);
|
||||
//~ FntPrint("Pos: %d Cur: %d\nTheta y: %d x: %d\n", camPath.pos, camPath.cursor, theta.vy, theta.vx);
|
||||
|
||||
FntPrint("%d %d\n", camAngleToAct.vy, dist);
|
||||
FntPrint("%d %d %d %d\n", camAngleToAct.vy, camera.pos.vx, camera.rot.vy, dist);
|
||||
|
||||
if ( camAngleToAct.vy < -50 ) {
|
||||
// Ony move cam if position is between first camPath.vx and last camPath.vx
|
||||
|
||||
if ( camAngleToAct.vy < -50 && camera.pos.vx > camPath.points[camPath.len - 1].vx ) {
|
||||
|
||||
// Clamp camPath position to cameraSpeed
|
||||
|
||||
camPath.pos += dist < cameraSpeed ? 0 : cameraSpeed ;
|
||||
|
||||
}
|
||||
|
||||
if ( camAngleToAct.vy > 50 ) {
|
||||
if ( camAngleToAct.vy > 50 && camera.pos.vx > camPath.points[camPath.cursor].vx ) {
|
||||
|
||||
camPath.pos -= dist < cameraSpeed ? 0 : cameraSpeed;
|
||||
|
||||
@ -865,21 +868,25 @@ int main() {
|
||||
|
||||
}
|
||||
|
||||
// FIXME ! //~ // Moveable prop
|
||||
// FIXME !
|
||||
// Moveable prop
|
||||
|
||||
//~ if ( !getIntCollision( *propPtr->body , *curNode->siblings->list[msh]->plane->body).vx &&
|
||||
//~ !getIntCollision( *propPtr->body , *curNode->siblings->list[msh]->plane->body).vz ) {
|
||||
//~ if ( !getIntCollision( *propPtr->body , *curNode->siblings->list[msh]->plane->body).vx &&
|
||||
|
||||
//~ !getIntCollision( *propPtr->body , *curNode->siblings->list[msh]->plane->body).vz ) {
|
||||
|
||||
//~ if ( propPtr->node != curNode->siblings->list[ msh ]){
|
||||
|
||||
//~ propPtr->node = curNode->siblings->list[ msh ];
|
||||
//~ }
|
||||
|
||||
//~ } else
|
||||
if ( !getIntCollision( *propPtr->body , *curNode->plane->body).vx &&
|
||||
!getIntCollision( *propPtr->body , *curNode->plane->body).vz ) {
|
||||
//~ }
|
||||
|
||||
propPtr->node = curNode;
|
||||
if ( !getIntCollision( *propPtr->body , *curNode->plane->body).vx &&
|
||||
|
||||
!getIntCollision( *propPtr->body , *curNode->plane->body).vz ) {
|
||||
|
||||
propPtr->node = curNode;
|
||||
|
||||
}
|
||||
|
||||
@ -906,37 +913,51 @@ int main() {
|
||||
col_lvl = getIntCollision( *meshes[k]->body , *levelPtr->body );
|
||||
|
||||
|
||||
//~ col_sphere = getIntCollision( *propPtr->body, *propPtr->node->plane->body );
|
||||
col_sphere = getIntCollision( *propPtr->body, *propPtr->node->plane->body );
|
||||
|
||||
// col_sphere = getIntCollision( *propPtr->body, *levelPtr->body );
|
||||
|
||||
col_sphere_act = getExtCollision( *actorPtr->body, *propPtr->body );
|
||||
|
||||
//~ // If no col with ground, fall off
|
||||
// If no col with ground, fall off
|
||||
|
||||
if ( col_lvl.vy ) {
|
||||
|
||||
if (!col_lvl.vx && !col_lvl.vz){actorPtr->body->position.vy = actorPtr->body->min.vy;}
|
||||
|
||||
}
|
||||
if (col_sphere.vy){
|
||||
if (!col_sphere.vx && !col_sphere.vz){propPtr->body->position.vy = propPtr->body->min.vy; }
|
||||
}
|
||||
|
||||
if (col_sphere_act.vx && col_sphere_act.vz ){
|
||||
|
||||
propPtr->body->velocity.vx += actorPtr->body->velocity.vx;// * ONE / propPtr->body->restitution ;
|
||||
propPtr->body->velocity.vz += actorPtr->body->velocity.vz;// * ONE / propPtr->body->restitution ;
|
||||
if ( !col_lvl.vx && !col_lvl.vz ) {
|
||||
|
||||
actorPtr->body->position.vy = actorPtr->body->min.vy;
|
||||
|
||||
if (propPtr->body->velocity.vx){
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (col_sphere.vy){
|
||||
|
||||
if ( !col_sphere.vx && !col_sphere.vz ) {
|
||||
|
||||
propPtr->body->position.vy = propPtr->body->min.vy;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (col_sphere_act.vx && col_sphere_act.vz ) {
|
||||
|
||||
propPtr->body->velocity.vx += actorPtr->body->velocity.vx;
|
||||
|
||||
propPtr->body->velocity.vz += actorPtr->body->velocity.vz;
|
||||
|
||||
if ( propPtr->body->velocity.vx ) {
|
||||
|
||||
VECTOR L = angularMom(*propPtr->body);
|
||||
|
||||
propPtr->rot->vz -= L.vx;
|
||||
}
|
||||
|
||||
if (propPtr->body->velocity.vz){
|
||||
if ( propPtr->body->velocity.vz ) {
|
||||
|
||||
VECTOR L = angularMom( *propPtr->body );
|
||||
|
||||
VECTOR L = angularMom(*propPtr->body);
|
||||
propPtr->rot->vx -= L.vz;
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
TIM/cat.tim
BIN
TIM/cat.tim
Binary file not shown.
BIN
TIM/home.tim
BIN
TIM/home.tim
Binary file not shown.
BIN
TIM/lara.tim
BIN
TIM/lara.tim
Binary file not shown.
BIN
coridor2.blend
BIN
coridor2.blend
Binary file not shown.
3032
coridor2.c
3032
coridor2.c
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@
|
||||
"emulator": {
|
||||
"8Megs": false,
|
||||
"AutoVideo": true,
|
||||
"Bios": "/home/arthus/.epsxe/bios/openbios.bin",
|
||||
"Bios": "/home/arthus/build/pcsx-redux/src/mips/openbios/openbios.bin",
|
||||
"BnWMdec": false,
|
||||
"CDDA": 1,
|
||||
"Debug": true,
|
||||
@ -22,7 +22,7 @@
|
||||
"GdbServer": true,
|
||||
"GdbServerPort": 3333,
|
||||
"GdbServerTrace": false,
|
||||
"IsoPath": "/home/arthus/build/psx-stuff/roms/UNIROM_RELEASE_8.0.D",
|
||||
"IsoPath": "/home/arthus/Jeux/emul/psx/Vagrant Story (USA)",
|
||||
"Locale": "",
|
||||
"Logfile": "",
|
||||
"Mcd1": "memcard1.mcd",
|
||||
@ -31,7 +31,7 @@
|
||||
"Mcd2Inserted": true,
|
||||
"Overlay": [],
|
||||
"PpfDir": "",
|
||||
"PsxExe": "UNIROM_B.EXE;1",
|
||||
"PsxExe": "SLUS_010.40;1",
|
||||
"RCntFix": false,
|
||||
"SioIrq": false,
|
||||
"SpuIrq": false,
|
||||
@ -53,5 +53,5 @@
|
||||
"WindowSizeX": 719,
|
||||
"WindowSizeY": 542
|
||||
},
|
||||
"imgui": "[Window][Debug##Default]\nPos=60,60\nSize=400,400\nCollapsed=0\n\n[Window][Emulation Configuration]\nViewportPos=39,142\nViewportId=0xA515CB4B\nSize=316,619\nCollapsed=0\n\n[Window][Logs]\nViewportPos=-86,644\nViewportId=0x50BD6962\nSize=720,450\nCollapsed=0\n\n[Window][Soft GPU configuration]\nPos=288,182\nSize=300,200\nCollapsed=0\n\n[Window][Main VRAM Viewer]\nViewportPos=1157,-262\nViewportId=0xD2F1ACB4\nSize=1321,900\nCollapsed=0\n\n[Window][Registers]\nViewportPos=1244,-4\nViewportId=0xA4D966FE\nSize=493,512\nCollapsed=0\nDockId=0x00000002,0\n\n[Window][Breakpoints]\nViewportPos=1283,-4\nViewportId=0xA4D966FE\nPos=250,0\nSize=243,512\nCollapsed=0\nDockId=0x00000003,0\n\n[Window][Assembly]\nViewportPos=1077,89\nViewportId=0xE37F8D5D\nSize=623,751\nCollapsed=0\n\n[Window][Output]\nPos=160,48\nSize=810,532\nCollapsed=0\n\n[Window][About]\nPos=199,66\nSize=880,600\nCollapsed=0\n\n[Window][Dear ImGui Demo]\nPos=669,25\nSize=550,680\nCollapsed=0\n\n[Window][SPU configuration]\nPos=69,56\nSize=550,220\nCollapsed=0\n\n[Window][SPU Debug]\nViewportPos=962,725\nViewportId=0xE5F7C643\nSize=1200,430\nCollapsed=0\n\n[Window][Memory Editor #1]\nViewportPos=1139,76\nViewportId=0xE9869392\nSize=584,539\nCollapsed=0\n\n[Window][Source]\nViewportPos=61,86\nViewportId=0x58267A45\nSize=416,536\nCollapsed=0\n\n[Window][Callstack]\nViewportPos=48,90\nViewportId=0xA9FDEE8E\nSize=426,525\nCollapsed=0\n\n[Window][Dwarf]\nPos=60,60\nSize=404,388\nCollapsed=0\n\n[Window][Symbols]\nPos=60,60\nSize=147,62\nCollapsed=0\n\n[Window][Scratch Pad]\nViewportPos=719,-7\nViewportId=0xB7AD35A5\nSize=484,480\nCollapsed=0\n\n[Window][Hardware Registers]\nViewportPos=847,221\nViewportId=0x311B7332\nSize=584,612\nCollapsed=0\n\n[Window][CLUT VRAM selector]\nViewportPos=737,320\nViewportId=0xF0235A86\nPos=0,5\nSize=330,252\nCollapsed=0\n\n[Docking][Data]\nDockNode ID=0x00000001 Pos=1244,-4 Size=493,512 Split=X\n DockNode ID=0x00000002 Parent=0x00000001 SizeRef=105,512 Selected=0x837A6095\n DockNode ID=0x00000003 Parent=0x00000001 SizeRef=103,512 Selected=0x0263173C\n\n"
|
||||
"imgui": "[Window][Debug##Default]\nPos=60,60\nSize=400,400\nCollapsed=0\n\n[Window][Emulation Configuration]\nViewportPos=882,165\nViewportId=0xA515CB4B\nSize=316,619\nCollapsed=0\n\n[Window][Logs]\nViewportPos=-158,629\nViewportId=0x50BD6962\nSize=720,450\nCollapsed=0\n\n[Window][Soft GPU configuration]\nPos=288,182\nSize=300,200\nCollapsed=0\n\n[Window][Main VRAM Viewer]\nViewportPos=1157,-262\nViewportId=0xD2F1ACB4\nSize=1321,900\nCollapsed=0\n\n[Window][Registers]\nViewportPos=1244,-4\nViewportId=0xA4D966FE\nSize=493,512\nCollapsed=0\nDockId=0x00000002,0\n\n[Window][Breakpoints]\nViewportPos=1244,-4\nViewportId=0xA4D966FE\nSize=639,660\nCollapsed=0\nDockId=0x00000003,0\n\n[Window][Assembly]\nViewportPos=1077,89\nViewportId=0xE37F8D5D\nSize=623,751\nCollapsed=0\n\n[Window][Output]\nPos=160,48\nSize=810,532\nCollapsed=0\n\n[Window][About]\nPos=199,66\nSize=880,600\nCollapsed=0\n\n[Window][Dear ImGui Demo]\nPos=669,25\nSize=550,680\nCollapsed=0\n\n[Window][SPU configuration]\nPos=69,56\nSize=550,220\nCollapsed=0\n\n[Window][SPU Debug]\nViewportPos=962,725\nViewportId=0xE5F7C643\nSize=1200,430\nCollapsed=0\n\n[Window][Memory Editor #1]\nViewportPos=1139,76\nViewportId=0xE9869392\nSize=584,539\nCollapsed=0\n\n[Window][Source]\nViewportPos=61,86\nViewportId=0x58267A45\nSize=416,536\nCollapsed=0\n\n[Window][Callstack]\nViewportPos=48,90\nViewportId=0xA9FDEE8E\nSize=426,525\nCollapsed=0\n\n[Window][Dwarf]\nPos=60,60\nSize=404,388\nCollapsed=0\n\n[Window][Symbols]\nPos=60,60\nSize=147,62\nCollapsed=0\n\n[Window][Scratch Pad]\nViewportPos=719,-7\nViewportId=0xB7AD35A5\nSize=484,480\nCollapsed=0\n\n[Window][Hardware Registers]\nViewportPos=847,221\nViewportId=0x311B7332\nSize=584,612\nCollapsed=0\n\n[Window][CLUT VRAM selector]\nViewportPos=737,320\nViewportId=0xF0235A86\nPos=0,5\nSize=330,252\nCollapsed=0\n\n[Docking][Data]\nDockNode ID=0x00000001 Pos=1244,-4 Size=639,660 Split=X\n DockNode ID=0x00000002 Parent=0x00000001 SizeRef=105,512 Selected=0x837A6095\n DockNode ID=0x00000003 Parent=0x00000001 SizeRef=103,512 Selected=0x0263173C\n\n"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user