Thread

AWSdkOcx4/5/6/Whatever object query! (Sdk)

AWSdkOcx4/5/6/Whatever object query! // Sdk

1  |  

john

Jul 21, 2003, 8:40pm
Module is at the bottom. This stores up to 100K objects in an array. This
is for pre 3.3 universes. This was designed for the OCXs including R i c h
a r d's unofficial AwSdkOcx6. The usage code is provided first and then the
Module code to be inserted into a module (VB) ~John

This calls the functions which stores, deletes and removes objects as they
come up in a regular query.

||---------------------------------------------------------||

Private Function Clear_All_Stored_Objects()
ResetAll
End Function

Private Sub sdk_EventCellObject()
CellObject sdk
End Sub

Private Sub sdk_EventObjectAdd()
ObjectAdd sdk
End Sub

Private Sub sdk_EventObjectClick()
ObjectClick sdk
End Sub

Private Sub sdk_EventObjectDeLete()
ObjectDelete sdk
End Sub

Private Sub sdk_EventObjectSelect()
ObjectSelect sdk
End Sub

||---------------------------------------------------------||

Private Type ObjectInfo
X As Long
Y As Long
Z As Long
Yaw As Long
Number As Long
Model As String
Action As String
Description As String
Used As Boolean
End Type
Dim Objects(0 To 100000) As ObjectInfo

Private Function FindNew() As Integer
For I = 0 To 100000
If Objects(I).Used = False Then FindNew = I: Exit Function
Next
End Function

Public Function CellObject(ByRef sdk As Object)
If sdk.AwWorldBuildNumber > 42 Then Exit Function

With Objects(FindNew)
.Model = sdk.AwObjectModel
.Action = sdk.AwObjectAction
.Description = sdk.AwObjectDescription
.Number = sdk.AwObjectNumber
.X = sdk.AwObjectX
.Y = sdk.AwObjectY
.Z = sdk.AwObjectZ
.Yaw = sdk.AwObjectYaw
.Used = True
End With

End Function

Public Function ObjectAdd(ByRef sdk As Object)
If sdk.AwWorldBuildNumber > 42 Then Exit Function

With Objects(FindNew)
.Model = sdk.AwObjectModel
.Action = sdk.AwObjectAction
.Description = sdk.AwObjectDescription
.Number = sdk.AwObjectNumber
.X = sdk.AwObjectX
.Y = sdk.AwObjectY
.Z = sdk.AwObjectZ
.Yaw = sdk.AwObjectYaw
.Used = True
End With

End Function

Public Function ObjectDelete(ByRef sdk As Object)
If sdk.AwWorldBuildNumber > 42 Then Exit Function

For I = 0 To 100000
If Objects(I).Used = True And Objects(I).Number = sdk.AwObjectNumber
Then Objects(I).Used = False: Exit Function
Next

End Function

Public Function ObjectSelect(ByRef sdk As Object)
If sdk.AwWorldBuildNumber > 42 Then Exit Function

For I = 0 To 100000
If Objects(I).Used = True And Objects(I).Number = sdk.AwObjectNumber
Then GetObjectProperties I, sdk: Exit Function
Next

End Function

Public Function ObjectClick(ByRef sdk As Object)
If sdk.AwWorldBuildNumber > 42 Then Exit Function

For I = 0 To 100000
If Objects(I).Used = True And Objects(I).Number = sdk.AwObjectNumber
Then GetObjectProperties I, sdk: Exit Function
Next

End Function

Private Function GetObjectProperties(I, ByRef sdk As Object)
If sdk.AwWorldBuildNumber > 42 Then Exit Function

With Objects(I)
sdk.AwObjectModel = .Model
sdk.AwObjectAction = .Action
sdk.AwStringSet AW_OBJECT_DESCRIPTION, .Description
sdk.AwObjectX = .X
sdk.AwObjectY = .Y
sdk.AwObjectZ = .Z
sdk.AwObjectYaw = .Yaw
End With

End Function

Public Function ResetAll()
For I = 0 To 100000
Objects(I).Number = 0
Objects(I).X = 0
Objects(I).Y = 0
Objects(I).Z = 0
Objects(I).Yaw = 0
Objects(I).Model = ""
Objects(I).Description = ""
Objects(I).Action = ""
Objects(I).Used = False
Next
End Function

strike rapier

Jul 23, 2003, 6:19pm
way to waste memory :)

[View Quote]

john

Jul 23, 2003, 6:52pm
Yup, kewl eh?

~John :-D

[View Quote]

strike rapier

Jul 23, 2003, 7:01pm
I love pointers :)

[View Quote]

1  |  
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn