11#![ allow( clippy:: all) ]
2- use std:: mem:: transmute;
2+ use std:: { mem:: transmute, rc :: Rc } ;
33
44use crate :: { events:: EventArgs , players:: Player , types:: vector:: Vector3 } ;
55
@@ -17,10 +17,9 @@ pub unsafe extern "C" fn OMPRS_OnObjectMove(args: *const EventArgs<OnObjectMoveA
1717 . unwrap ( )
1818 . as_mut ( )
1919 . unwrap ( ) ;
20- for script in scripts. iter_mut ( ) {
21- script
22- . borrow_mut ( )
23- . on_object_moved ( Object :: new ( * ( * ( * args) . list ) . object ) ) ;
20+ for script in scripts. iter ( ) {
21+ let script = & mut * ( * Rc :: as_ptr ( script) ) . as_ptr ( ) ;
22+ script. on_object_moved ( Object :: new ( * ( * ( * args) . list ) . object ) ) ;
2423 }
2524}
2625
@@ -37,8 +36,9 @@ pub unsafe extern "C" fn OMPRS_OnPlayerObjectMove(args: *const EventArgs<OnPlaye
3736 . unwrap ( )
3837 . as_mut ( )
3938 . unwrap ( ) ;
40- for script in scripts. iter_mut ( ) {
41- script. borrow_mut ( ) . on_player_object_moved (
39+ for script in scripts. iter ( ) {
40+ let script = & mut * ( * Rc :: as_ptr ( script) ) . as_ptr ( ) ;
41+ script. on_player_object_moved (
4242 Player :: new ( * ( * ( * args) . list ) . player ) ,
4343 PlayerObject :: new (
4444 * ( * ( * args) . list ) . object ,
@@ -68,8 +68,9 @@ pub unsafe extern "C" fn OMPRS_OnPlayerEditObject(args: *const EventArgs<OnPlaye
6868 . unwrap ( )
6969 . as_mut ( )
7070 . unwrap ( ) ;
71- for script in scripts. iter_mut ( ) {
72- script. borrow_mut ( ) . on_player_edit_object (
71+ for script in scripts. iter ( ) {
72+ let script = & mut * ( * Rc :: as_ptr ( script) ) . as_ptr ( ) ;
73+ script. on_player_edit_object (
7374 Player :: new ( * ( * ( * args) . list ) . player ) ,
7475 Object :: new ( * ( * ( * args) . list ) . object ) ,
7576 transmute ( * ( * ( * args) . list ) . response ) ,
@@ -127,8 +128,9 @@ pub unsafe extern "C" fn OMPRS_OnPlayerEditAttachedObject(
127128 . unwrap ( )
128129 . as_mut ( )
129130 . unwrap ( ) ;
130- for script in scripts. iter_mut ( ) {
131- script. borrow_mut ( ) . on_player_edit_attached_object (
131+ for script in scripts. iter ( ) {
132+ let script = & mut * ( * Rc :: as_ptr ( script) ) . as_ptr ( ) ;
133+ script. on_player_edit_attached_object (
132134 Player :: new ( * ( * ( * args) . list ) . player ) ,
133135 * ( * ( * args) . list ) . index ,
134136 * ( * ( * args) . list ) . saved ,
@@ -175,8 +177,9 @@ pub unsafe extern "C" fn OMPRS_OnPlayerSelectObject(
175177 . unwrap ( )
176178 . as_mut ( )
177179 . unwrap ( ) ;
178- for script in scripts. iter_mut ( ) {
179- script. borrow_mut ( ) . on_player_select_object (
180+ for script in scripts. iter ( ) {
181+ let script = & mut * ( * Rc :: as_ptr ( script) ) . as_ptr ( ) ;
182+ script. on_player_select_object (
180183 Player :: new ( * ( * ( * args) . list ) . player ) ,
181184 Object :: new ( * ( * ( * args) . list ) . object ) ,
182185 * ( * ( * args) . list ) . model ,
0 commit comments