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
Jul 23, 2003, 6:19pm
way to waste memory :)
[View Quote]"john" <john at 3d-reality.com> wrote in message
news:3f1c6bf9 at server1.Activeworlds.com...
> 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
>
>
>
|
Jul 23, 2003, 6:52pm
Yup, kewl eh?
~John :-D
[View Quote]"strike rapier" <strike at Rapiercom.freeserve.co.uk> wrote in message
news:3f1eedd7 at server1.Activeworlds.com...
> way to waste memory :)
>
> "john" <john at 3d-reality.com> wrote in message
> news:3f1c6bf9 at server1.Activeworlds.com...
> This
c
> h
> the
they
> sdk.AwObjectNumber
> sdk.AwObjectNumber
> sdk.AwObjectNumber
>
>
|
Jul 23, 2003, 7:01pm
I love pointers :)
[View Quote]"john" <john at 3d-reality.com> wrote in message
news:3f1ef585 at server1.Activeworlds.com...
> Yup, kewl eh?
>
> ~John :-D
|