ContactManager.smali
.class public Lorg/jbox2d/dynamics/ContactManager;
.super Ljava/lang/Object;
.source "ContactManager.java"
# interfaces
.implements Lorg/jbox2d/callbacks/PairCallback;
# instance fields
.field public m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.field public m_contactCount:I
.field public m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
.field public m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
.field public m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
.field private final pool:Lorg/jbox2d/dynamics/World;
# direct methods
.method public constructor <init>(Lorg/jbox2d/dynamics/World;Lorg/jbox2d/collision/broadphase/BroadPhase;)V
.registers 5
.prologue
const/4 v1, 0x0
.line 48
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 49
iput-object v1, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
.line 50
const/4 v0, 0x0
iput v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
.line 51
new-instance v0, Lorg/jbox2d/callbacks/ContactFilter;
invoke-direct {v0}, Lorg/jbox2d/callbacks/ContactFilter;-><init>()V
iput-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
.line 52
iput-object v1, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
.line 53
iput-object p2, p0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
.line 54
iput-object p1, p0, Lorg/jbox2d/dynamics/ContactManager;->pool:Lorg/jbox2d/dynamics/World;
.line 55
return-void
.end method
# virtual methods
.method public addPair(Ljava/lang/Object;Ljava/lang/Object;)V
.registers 16
.prologue
const/4 v12, 0x1
const/4 v11, 0x0
.line 64
check-cast p1, Lorg/jbox2d/dynamics/FixtureProxy;
.line 65
check-cast p2, Lorg/jbox2d/dynamics/FixtureProxy;
.line 67
iget-object v1, p1, Lorg/jbox2d/dynamics/FixtureProxy;->fixture:Lorg/jbox2d/dynamics/Fixture;
.line 68
iget-object v2, p2, Lorg/jbox2d/dynamics/FixtureProxy;->fixture:Lorg/jbox2d/dynamics/Fixture;
.line 70
iget v3, p1, Lorg/jbox2d/dynamics/FixtureProxy;->childIndex:I
.line 71
iget v4, p2, Lorg/jbox2d/dynamics/FixtureProxy;->childIndex:I
.line 73
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v5
.line 74
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v6
.line 77
if-ne v5, v6, :cond_19
.line 169
:cond_18
:goto_18
return-void
.line 84
:cond_19
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Body;->getContactList()Lorg/jbox2d/dynamics/contacts/ContactEdge;
move-result-object v0
.line 85
:goto_1d
if-eqz v0, :cond_4e
.line 86
iget-object v7, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
if-ne v7, v5, :cond_4b
.line 87
iget-object v7, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v7}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v7
.line 88
iget-object v8, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v8}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v8
.line 89
iget-object v9, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v9}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexA()I
move-result v9
.line 90
iget-object v10, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
invoke-virtual {v10}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexB()I
move-result v10
.line 92
if-ne v7, v1, :cond_43
if-ne v9, v3, :cond_43
if-ne v8, v2, :cond_43
if-eq v10, v4, :cond_18
.line 97
:cond_43
if-ne v7, v2, :cond_4b
if-ne v9, v4, :cond_4b
if-ne v8, v1, :cond_4b
if-eq v10, v3, :cond_18
.line 103
:cond_4b
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
goto :goto_1d
.line 107
:cond_4e
invoke-virtual {v6, v5}, Lorg/jbox2d/dynamics/Body;->shouldCollide(Lorg/jbox2d/dynamics/Body;)Z
move-result v0
if-eqz v0, :cond_18
.line 112
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
if-eqz v0, :cond_60
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
invoke-virtual {v0, v1, v2}, Lorg/jbox2d/callbacks/ContactFilter;->shouldCollide(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/dynamics/Fixture;)Z
move-result v0
if-eqz v0, :cond_18
.line 117
:cond_60
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->pool:Lorg/jbox2d/dynamics/World;
invoke-virtual {v0, v1, v3, v2, v4}, Lorg/jbox2d/dynamics/World;->popContact(Lorg/jbox2d/dynamics/Fixture;ILorg/jbox2d/dynamics/Fixture;I)Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
.line 118
if-eqz v0, :cond_18
.line 123
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v1
.line 124
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v2
.line 125
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexA()I
.line 126
invoke-virtual {v0}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexB()I
.line 127
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v3
.line 128
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v4
.line 131
iput-object v11, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_prev:Lorg/jbox2d/dynamics/contacts/Contact;
.line 132
iget-object v5, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
.line 133
iget-object v5, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
if-eqz v5, :cond_8c
.line 134
iget-object v5, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v0, v5, Lorg/jbox2d/dynamics/contacts/Contact;->m_prev:Lorg/jbox2d/dynamics/contacts/Contact;
.line 136
:cond_8c
iput-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
.line 141
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v0, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
.line 142
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v4, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 144
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v11, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 145
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v6, v3, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v6, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 146
iget-object v5, v3, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-eqz v5, :cond_aa
.line 147
iget-object v5, v3, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v6, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v6, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 149
:cond_aa
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v5, v3, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 152
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v0, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->contact:Lorg/jbox2d/dynamics/contacts/Contact;
.line 153
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v3, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->other:Lorg/jbox2d/dynamics/Body;
.line 155
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v11, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 156
iget-object v5, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v6, v4, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v6, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 157
iget-object v5, v4, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-eqz v5, :cond_ca
.line 158
iget-object v5, v4, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v6, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v6, v5, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 160
:cond_ca
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v0, v4, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 163
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->isSensor()Z
move-result v0
if-nez v0, :cond_e0
invoke-virtual {v2}, Lorg/jbox2d/dynamics/Fixture;->isSensor()Z
move-result v0
if-nez v0, :cond_e0
.line 164
invoke-virtual {v3, v12}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 165
invoke-virtual {v4, v12}, Lorg/jbox2d/dynamics/Body;->setAwake(Z)V
.line 168
:cond_e0
iget v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
goto/16 :goto_18
.end method
.method public collide()V
.registers 12
.prologue
const/4 v1, 0x1
const/4 v2, 0x0
.line 235
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
move-object v4, v0
.line 236
:goto_5
if-eqz v4, :cond_a3
.line 237
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v5
.line 238
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v6
.line 239
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexA()I
move-result v7
.line 240
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getChildIndexB()I
move-result v8
.line 241
invoke-virtual {v5}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v0
.line 242
invoke-virtual {v6}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v3
.line 245
iget v9, v4, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v9, v9, 0x8
const/16 v10, 0x8
if-ne v9, v10, :cond_51
.line 247
invoke-virtual {v3, v0}, Lorg/jbox2d/dynamics/Body;->shouldCollide(Lorg/jbox2d/dynamics/Body;)Z
move-result v9
if-nez v9, :cond_36
.line 249
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getNext()Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
.line 250
invoke-virtual {p0, v4}, Lorg/jbox2d/dynamics/ContactManager;->destroy(Lorg/jbox2d/dynamics/contacts/Contact;)V
move-object v4, v0
.line 251
goto :goto_5
.line 255
:cond_36
iget-object v9, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
if-eqz v9, :cond_4b
iget-object v9, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactFilter:Lorg/jbox2d/callbacks/ContactFilter;
invoke-virtual {v9, v5, v6}, Lorg/jbox2d/callbacks/ContactFilter;->shouldCollide(Lorg/jbox2d/dynamics/Fixture;Lorg/jbox2d/dynamics/Fixture;)Z
move-result v9
if-nez v9, :cond_4b
.line 257
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getNext()Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
.line 258
invoke-virtual {p0, v4}, Lorg/jbox2d/dynamics/ContactManager;->destroy(Lorg/jbox2d/dynamics/contacts/Contact;)V
move-object v4, v0
.line 259
goto :goto_5
.line 263
:cond_4b
iget v9, v4, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
and-int/lit8 v9, v9, -0x9
iput v9, v4, Lorg/jbox2d/dynamics/contacts/Contact;->m_flags:I
.line 266
:cond_51
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Body;->isAwake()Z
move-result v9
if-eqz v9, :cond_75
iget-object v0, v0, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v9, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v0, v9, :cond_75
move v0, v1
.line 267
:goto_5e
invoke-virtual {v3}, Lorg/jbox2d/dynamics/Body;->isAwake()Z
move-result v9
if-eqz v9, :cond_77
iget-object v3, v3, Lorg/jbox2d/dynamics/Body;->m_type:Lorg/jbox2d/dynamics/BodyType;
sget-object v9, Lorg/jbox2d/dynamics/BodyType;->STATIC:Lorg/jbox2d/dynamics/BodyType;
if-eq v3, v9, :cond_77
move v3, v1
.line 270
:goto_6b
if-nez v0, :cond_79
if-nez v3, :cond_79
.line 271
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getNext()Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
move-object v4, v0
.line 272
goto :goto_5
:cond_75
move v0, v2
.line 266
goto :goto_5e
:cond_77
move v3, v2
.line 267
goto :goto_6b
.line 275
:cond_79
iget-object v0, v5, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;
aget-object v0, v0, v7
iget v0, v0, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I
.line 276
iget-object v3, v6, Lorg/jbox2d/dynamics/Fixture;->m_proxies:[Lorg/jbox2d/dynamics/FixtureProxy;
aget-object v3, v3, v8
iget v3, v3, Lorg/jbox2d/dynamics/FixtureProxy;->proxyId:I
.line 277
iget-object v5, p0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v5, v0, v3}, Lorg/jbox2d/collision/broadphase/BroadPhase;->testOverlap(II)Z
move-result v0
.line 280
if-nez v0, :cond_97
.line 282
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getNext()Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
.line 283
invoke-virtual {p0, v4}, Lorg/jbox2d/dynamics/ContactManager;->destroy(Lorg/jbox2d/dynamics/contacts/Contact;)V
move-object v4, v0
.line 284
goto/16 :goto_5
.line 288
:cond_97
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
invoke-virtual {v4, v0}, Lorg/jbox2d/dynamics/contacts/Contact;->update(Lorg/jbox2d/callbacks/ContactListener;)V
.line 289
invoke-virtual {v4}, Lorg/jbox2d/dynamics/contacts/Contact;->getNext()Lorg/jbox2d/dynamics/contacts/Contact;
move-result-object v0
move-object v4, v0
.line 290
goto/16 :goto_5
.line 291
:cond_a3
return-void
.end method
.method public destroy(Lorg/jbox2d/dynamics/contacts/Contact;)V
.registers 6
.prologue
.line 176
invoke-virtual {p1}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureA()Lorg/jbox2d/dynamics/Fixture;
move-result-object v0
.line 177
invoke-virtual {p1}, Lorg/jbox2d/dynamics/contacts/Contact;->getFixtureB()Lorg/jbox2d/dynamics/Fixture;
move-result-object v1
.line 178
invoke-virtual {v0}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v0
.line 179
invoke-virtual {v1}, Lorg/jbox2d/dynamics/Fixture;->getBody()Lorg/jbox2d/dynamics/Body;
move-result-object v1
.line 181
iget-object v2, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
if-eqz v2, :cond_1f
invoke-virtual {p1}, Lorg/jbox2d/dynamics/contacts/Contact;->isTouching()Z
move-result v2
if-eqz v2, :cond_1f
.line 182
iget-object v2, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactListener:Lorg/jbox2d/callbacks/ContactListener;
invoke-interface {v2, p1}, Lorg/jbox2d/callbacks/ContactListener;->endContact(Lorg/jbox2d/dynamics/contacts/Contact;)V
.line 186
:cond_1f
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_prev:Lorg/jbox2d/dynamics/contacts/Contact;
if-eqz v2, :cond_29
.line 187
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_prev:Lorg/jbox2d/dynamics/contacts/Contact;
iget-object v3, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v3, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
.line 190
:cond_29
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
if-eqz v2, :cond_33
.line 191
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
iget-object v3, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_prev:Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v3, v2, Lorg/jbox2d/dynamics/contacts/Contact;->m_prev:Lorg/jbox2d/dynamics/contacts/Contact;
.line 194
:cond_33
iget-object v2, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
if-ne p1, v2, :cond_3b
.line 195
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_next:Lorg/jbox2d/dynamics/contacts/Contact;
iput-object v2, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactList:Lorg/jbox2d/dynamics/contacts/Contact;
.line 199
:cond_3b
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-eqz v2, :cond_4b
.line 200
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v3, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v3, v3, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v3, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 203
:cond_4b
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-eqz v2, :cond_5b
.line 204
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v3, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v3, v3, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v3, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 207
:cond_5b
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v3, v0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-ne v2, v3, :cond_67
.line 208
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeA:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v2, v0, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 212
:cond_67
iget-object v0, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-eqz v0, :cond_77
.line 213
iget-object v0, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v2, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 216
:cond_77
iget-object v0, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-eqz v0, :cond_87
.line 217
iget-object v0, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v2, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v2, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->prev:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 220
:cond_87
iget-object v0, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v2, v1, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
if-ne v0, v2, :cond_93
.line 221
iget-object v0, p1, Lorg/jbox2d/dynamics/contacts/Contact;->m_nodeB:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iget-object v0, v0, Lorg/jbox2d/dynamics/contacts/ContactEdge;->next:Lorg/jbox2d/dynamics/contacts/ContactEdge;
iput-object v0, v1, Lorg/jbox2d/dynamics/Body;->m_contactList:Lorg/jbox2d/dynamics/contacts/ContactEdge;
.line 225
:cond_93
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->pool:Lorg/jbox2d/dynamics/World;
invoke-virtual {v0, p1}, Lorg/jbox2d/dynamics/World;->pushContact(Lorg/jbox2d/dynamics/contacts/Contact;)V
.line 226
iget v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_contactCount:I
.line 227
return-void
.end method
.method public findNewContacts()V
.registers 2
.prologue
.line 172
iget-object v0, p0, Lorg/jbox2d/dynamics/ContactManager;->m_broadPhase:Lorg/jbox2d/collision/broadphase/BroadPhase;
invoke-interface {v0, p0}, Lorg/jbox2d/collision/broadphase/BroadPhase;->updatePairs(Lorg/jbox2d/callbacks/PairCallback;)V
.line 173
return-void
.end method