You can read and reply to posts and download all mods without registering.
We're an independent and non-profit fan-site. Find out more about us here.
And I have only one problem - I`ve stuck on level 6:)))
This mod is awesome! Just one thing; is it possible to re-map mouse keys? I went through the entire thread and it has been asked twice, but no answer so far.
Malba hacked mouselook into the original executable, so there are no regular sources. At best he could give a description. To be honest, I'd rather see him continue working at the actual mod.
++++++++++++++++++++++++ extracted from patch.lua +++++++++++++++++++++++++ if patchMLook then addr = 0x2555EE - code_off; dd ( "mouse_routine_" ); addr = 0x2556C5 - code_off; dd ( "mouse_routine_" ); addr = 0x2556FA - code_off; dd ( "mouse_routine_" ); addr = 0x255701 - code_off; dd ( "mouse_routine_" ); addr = 0x2555E9 - code_off; dd ( "_mrtn_size" ); addr = 0x2556C0 - code_off; dd ( "_mrtn_size" ); addr = big_physics_fn_; addr = 0x249A8E - code_off; -- input_frame ib( "mlookPhysics_", 5 ); addr = 0x201FF6 - code_off; dcall( "premlookPause_" ); db( 0x90, 0x90 ) --addr = 0x249B8E - code_off ; --ib( "ALEX_check_keys_", 5 ); end;
void mlookPhysics( struct pusharegs_s* regs ){ u32 i, j; u32 timerDelta; s32 x = mxmove; s32 y = mymove; u32 attr; mxmove -= x; mymove -= y; timerDelta = *timer2_addr - last_timer; last_timer = *timer2_addr;/* if ( ptrhackerstuff ) { i = mot[ ptrhackerstuff->mot_idx ].ai_idx; //aistr[ i ].yaw -= 400 * x; //if ( y ) setPlPitch( plPitch - 40 * y ); //SSsprintf( msg, "%08X %08X %08X %08X ", ptrhackerstuff, i, aistr[ i ].yaw, aistr[ i ].x ); //DBG_locate( 16, 0 ); //DBG_print( msg ); }*/ if ( gamePaused ) return; if ( !level_info_ptr ) return; if ( mlook ) { if ( level_info_ptr->cyberspace == FALSE ) { i = mobj_idx; j = control_idx[ mot[ i ].ai_idx ]; aistr[ j ].yaw -= mlook_hsens * x; if ( y ) setPlPitch( plPitch - mlook_vsens * y ); } else { csx += x; csy += y; if ( x == 0 ) { if ( last_timer >= xfrictionTime ) { csx = 0; /* if ( csx > 0 ) { csx -= timerDelta; if ( csx < 0 ) csx = 0; } else if ( csx < 0 ) { csx += timerDelta; if ( csx > 0 ) csx = 0; } */ } } else { xfrictionTime = last_timer + 0x20; } if ( y == 0 ) { if ( last_timer >= yfrictionTime ) {/* if ( csy > 0 ) { csy -= timerDelta; if ( csy < 0 ) csy = 0; } else if ( csy < 0 ) { csy += timerDelta; if ( csy > 0 ) csy = 0; }*/ csy = 0; } } else { yfrictionTime = last_timer + 0x20; } if ( csx > MAX_CSCOORD ) csx = MAX_CSCOORD; else if ( csx < -MAX_CSCOORD ) csx = -MAX_CSCOORD; if ( csy > MAX_CSCOORD ) csy = MAX_CSCOORD; else if ( csy < -MAX_CSCOORD ) csy = -MAX_CSCOORD; player_cmd.ymove = csy; if ( kbd_struc_addr->keys[ mouserollkey ] ) player_cmd.xmove = csx; else player_cmd.yaw = csx;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++