home *** CD-ROM | disk | FTP | other *** search
- property categoryList, resourceCast, resourceIndex, currentCategory, currentEventIndex, previewSpriteList, pictureSprite, textSprite, dialSprite, categorySprite, entryPlaceholderSprite, boxSprite, barSprite, bottomBoxLimit, topBoxLimit
- global gSoundManager, gScrollingText
-
- on new me, aCategoryList, aResourceCast, sortFlag
- set resourceCast to the number of castLib aResourceCast
- set resourceIndex to []
- set previewSpriteList to [13, 14, 15, 16, 17]
- set pictureSprite to 27
- set textSprite to 20
- set dialSprite to 4
- set categorySprite to 3
- set entryPlaceholderSprite to 12
- mInit(me, aCategoryList, sortFlag)
- mInitPreviewList(me)
- return me
- end
-
- on mShowCategories me
- put categoryList
- end
-
- on mInitPreviewList me
- set boxSprite to 8
- set barSprite to 5
- puppetSprite(boxSprite, 1)
- set bottomBoxLimit to the bottom of sprite barSprite - (the width of sprite boxSprite / 2)
- set topBoxLimit to the top of sprite barSprite + (the width of sprite boxSprite / 2)
- end
-
- on mInit me, alist, trueOrFalse
- repeat with i = 1 to 100
- set aMember to member ((i * 10) - 9) of castLib resourceCast
- if the type of aMember <> #empty then
- add(resourceIndex, the name of member ((i * 10) - 9) of castLib resourceCast)
- next repeat
- end if
- exit repeat
- end repeat
- if trueOrFalse then
- sort(resourceIndex)
- end if
- set categoryList to []
- repeat with i = 1 to count(alist)
- set categoryLimits to getAt(alist, i)
- set categoryName to getPropAt(alist, i)
- add(categoryList, new(script "categoryObjectScript", categoryName, categoryLimits))
- end repeat
- set currentCategory to getAt(categoryList, 1)
- repeat with aSprite in previewSpriteList
- puppetSprite(aSprite, 1)
- end repeat
- puppetSprite(pictureSprite, 1)
- puppetSprite(textSprite, 1)
- puppetSprite(dialSprite, 1)
- puppetSprite(categorySprite, 1)
- puppetSprite(entryPlaceholderSprite, 1)
- mSetCategory(me, mGetName(currentCategory))
- end
-
- on mReset me
- set currentCategory to getAt(categoryList, 1)
- mSetCategory(me, mGetName(currentCategory))
- end
-
- on mSetCategory me, aCategoryName
- repeat with aCategory in categoryList
- if mGetName(aCategory) = aCategoryName then
- set currentCategory to aCategory
- exit repeat
- end if
- end repeat
- set currentEventIndex to mGetLowerLimit(currentCategory)
- set the member of sprite dialSprite to member (aCategoryName & "arrow")
- set the member of sprite categorySprite to member (aCategoryName & "label")
- mUpdatePreview(me)
- end
-
- on mUpArrow me
- set currentEventIndex to currentEventIndex - 1
- set currentEventIndex to max(currentEventIndex, mGetLowerLimit(currentCategory))
- mUpdatePreview(me)
- mTopOfPage(gScrollingText)
- end
-
- on mDownArrow me
- set currentEventIndex to currentEventIndex + 1
- set currentEventIndex to min(currentEventIndex, mGetUpperLimit(currentCategory))
- mUpdatePreview(me)
- mTopOfPage(gScrollingText)
- end
-
- on mSlideBox me
- repeat while the mouseDown
- set v to the mouseV
- set v to min(v, bottomBoxLimit)
- set v to max(v, topBoxLimit)
- set the locV of sprite boxSprite to v
- updateStage()
- end repeat
- set currentEventIndex to mCalcIndex(me)
- mUpdatePreview(me)
- end
-
- on mCalcIndex me
- set v to the locV of sprite boxSprite
- set p to float((v - topBoxLimit) * 1.0 / (bottomBoxLimit - topBoxLimit) * 1.0)
- set numEvents to mGetNumberOfEvents(currentCategory)
- set index to mGetLowerLimit(currentCategory) + integer(p * numEvents)
- return index
- end
-
- on mPositionBox me
- alert("obsolete function")
- end
-
- on mUpdatePreview me
- set oldTextDescriptionList to []
- repeat with i = 1 to 5
- add(oldTextDescriptionList, the member of sprite getAt(previewSpriteList, i))
- end repeat
- set offset to currentEventIndex - 3
- repeat with i = 1 to 5
- set textDescription to ((offset + i) * 10) - 9
- set textDescription to mValidateTextDescription(me, textDescription, i)
- if not (textDescription = -1) then
- set the member of sprite getAt(previewSpriteList, i) to member textDescription of castLib resourceCast
- next repeat
- end if
- set the member of sprite getAt(previewSpriteList, i) to member "dummyPixel"
- end repeat
- repeat with i = 1 to 5
- unloadMember(getAt(oldTextDescriptionList, i))
- end repeat
- set previousPicture to the member of sprite pictureSprite
- if (resourceCast = the number of castLib "timeline") or (resourceCast = the number of castLib "bookweblist") then
- set eventPointer to (currentEventIndex * 10) - 9 + 1
- set textPointer to eventPointer + 1
- set the member of sprite pictureSprite to member eventPointer of castLib resourceCast
- set the member of sprite textSprite to member textPointer of castLib resourceCast
- else
- set eventPointer to (currentEventIndex * 10) - 9 + 3
- set textPointer to eventPointer - 1
- set the member of sprite pictureSprite to member eventPointer of castLib resourceCast
- set the scrollTop of member textPointer of castLib resourceCast to 1
- set the member of sprite textSprite to member textPointer of castLib resourceCast
- end if
- mFillSpace(me)
- unloadMember(previousPicture)
- end
-
- on mValidateTextDescription me, textDescription, index
- set n to the number of castMembers of castLib resourceCast
- set endOfCategory to currentEventIndex = mGetUpperLimit(currentCategory)
- set startOfCategory to currentEventIndex = mGetLowerLimit(currentCategory)
- set nearEndCategory to (mGetUpperLimit(currentCategory) - currentEventIndex) = 1
- set nearStartCategory to (currentEventIndex - mGetLowerLimit(currentCategory)) = 1
- case 1 of
- (textDescription < 0):
- set textDescription to -1
- (textDescription > n):
- set textDescription to -1
- startOfCategory:
- if (index = 1) or (index = 2) then
- set textDescription to -1
- end if
- endOfCategory:
- if (index = 4) or (index = 5) then
- set textDescription to -1
- end if
- nearEndCategory:
- if index = 5 then
- set textDescription to -1
- end if
- nearStartCategory:
- if index = 1 then
- set textDescription to -1
- end if
- end case
- return textDescription
- end
-
- on mFillSpace me
- set catName to mGetName(currentCategory)
- set endOfCategory to currentEventIndex = mGetUpperLimit(currentCategory)
- set startOfCategory to currentEventIndex = mGetLowerLimit(currentCategory)
- set nearEndCategory to (mGetUpperLimit(currentCategory) - currentEventIndex) = 1
- set nearStartCategory to (currentEventIndex - mGetLowerLimit(currentCategory)) = 1
- case 1 of
- startOfCategory:
- set the member of sprite entryPlaceholderSprite to member (catName & "startCategory")
- endOfCategory:
- set the member of sprite entryPlaceholderSprite to member (catName & "EndCategory")
- nearEndCategory:
- set the member of sprite entryPlaceholderSprite to member (catName & "almostEndCategory")
- nearStartCategory:
- set the member of sprite entryPlaceholderSprite to member (catName & "almostStartCategory")
- otherwise:
- set the member of sprite entryPlaceholderSprite to member "dummyPixel"
- end case
- return(textDescription)
- end
-