772 lines
25 KiB
Python
Executable File
772 lines
25 KiB
Python
Executable File
//////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// SCRIPT NAME : rng_output.sc //
|
|
// AUTHOR : Kenneth Ross //
|
|
// DESCRIPTION : Used to output datasets that use the random number //
|
|
// generator. //
|
|
// //
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Include the standard headers (which also ensures the correct #DEFINEs are recognised)
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
|
|
USING "casino_slots_rng.sch"
|
|
USING "three_card_poker_helpers.sch"
|
|
USING "blackjack_helpers.sch"
|
|
USING "net_lucky_reward.sch"
|
|
|
|
USING "RouletteConstants.sch"
|
|
|
|
USING "net_casino_inside_track_minigame.sch"
|
|
|
|
// Do nothing in release mode
|
|
#IF IS_FINAL_BUILD
|
|
SCRIPT
|
|
ENDSCRIPT
|
|
#ENDIF
|
|
|
|
// Only include in debug mode
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
USING "commands_script.sch"
|
|
|
|
ENUM RNG_OUTPUT_STAGE
|
|
STAGE_INIT = 0,
|
|
STAGE_PROCESSING,
|
|
STAGE_CLEANUP
|
|
ENDENUM
|
|
RNG_OUTPUT_STAGE eStage = STAGE_INIT
|
|
|
|
CONST_INT RNG_OUTPUT_SLOTS 0
|
|
CONST_INT RNG_OUTPUT_SLOTS_PRIZE 1
|
|
CONST_INT RNG_OUTPUT_ROULETTE 2
|
|
CONST_INT RNG_OUTPUT_3_CARD_POKER 3
|
|
CONST_INT RNG_OUTPUT_BLACKJACK 4
|
|
CONST_INT RNG_OUTPUT_LUCKY_WHEEL 5
|
|
CONST_INT RNG_OUTPUT_RAW 6
|
|
CONST_INT RNG_OUTPUT_INSIDE_TRACK 7
|
|
CONST_INT RNG_OUTPUT_INSIDE_TRACK_DISTRO 8
|
|
CONST_INT RNG_OUTPUT_TYPE_COUNT 9
|
|
|
|
CONST_INT RNG_OUTPUT_INSIDE_TRACK_SELECTION_SIZE 20
|
|
|
|
TWEAK_INT RNG_OUTPUT_SAMPLE_SIZE 50000000
|
|
TWEAK_INT RNG_OUTPUT_SAMPLE_SIZE_PER_FILE 5000000
|
|
TWEAK_INT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME 1000
|
|
TWEAK_INT RNG_OUTPUT_FILE_WRITE_FRAME_DELAY 0
|
|
|
|
STRUCT RNG_OUTPUT_DATA
|
|
INT iFrameCountSinceWrite
|
|
INT iItemStep
|
|
INT iItemTotal
|
|
INT iItemCount
|
|
INT iItemSelection
|
|
BOOL bRun
|
|
BOOL bPause
|
|
BOOL bInit
|
|
INT iType
|
|
BOOL bGenerateDataset
|
|
BOOL bInitDataset
|
|
FLOAT fPercentageComplete
|
|
TEXT_LABEL_63 tlFilename
|
|
INT iTimer
|
|
TEXT_WIDGET_ID twRunningTime
|
|
ENDSTRUCT
|
|
RNG_OUTPUT_DATA sRNGData
|
|
|
|
//SLOTS
|
|
LOCAL_SLOT_MACHINE_SETUP slotSetup
|
|
LOCAL_SLOT_MACHINE localSlots[54]
|
|
RESULT_STRUCT results
|
|
INT iOverrideReelResult[NUM_REELS]
|
|
INT iOverrideWheelResult = -1
|
|
|
|
//3 CARD POKER
|
|
TCP_DECK sTCPDeck
|
|
|
|
//BLACKJACK
|
|
BJACK_DECK sBJDeck
|
|
|
|
//INSIDE TRACK
|
|
INSIDE_TRACK_RACE_DATA sRaceData
|
|
|
|
FUNC STRING GET_RNG_OUTPUT_TYPE_NAME(INT iType)
|
|
SWITCH iType
|
|
CASE RNG_OUTPUT_SLOTS RETURN "slots" BREAK
|
|
CASE RNG_OUTPUT_SLOTS_PRIZE RETURN "slots_prize" BREAK
|
|
CASE RNG_OUTPUT_ROULETTE RETURN "roulette" BREAK
|
|
CASE RNG_OUTPUT_3_CARD_POKER RETURN "poker" BREAK
|
|
CASE RNG_OUTPUT_BLACKJACK RETURN "blackjack" BREAK
|
|
CASE RNG_OUTPUT_LUCKY_WHEEL RETURN "lucky_wheel" BREAK
|
|
CASE RNG_OUTPUT_RAW RETURN "raw" BREAK
|
|
CASE RNG_OUTPUT_INSIDE_TRACK RETURN "insidetrack_selection" BREAK
|
|
CASE RNG_OUTPUT_INSIDE_TRACK_DISTRO RETURN "insidetrack_winner" BREAK
|
|
ENDSWITCH
|
|
RETURN "NA"
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_RNG_OUTPUT_SELECTION_SIZE(INT iType)
|
|
SWITCH iType
|
|
CASE RNG_OUTPUT_SLOTS RETURN NUM_REELS BREAK
|
|
CASE RNG_OUTPUT_3_CARD_POKER RETURN TCP_DECK_MAX_CARDS BREAK
|
|
CASE RNG_OUTPUT_BLACKJACK RETURN (BJACK_MAX_DECKS * BJACK_DECK_MAX_CARDS) BREAK
|
|
ENDSWITCH
|
|
RETURN 1
|
|
ENDFUNC
|
|
|
|
PROC SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(INT iOverride0, INT iOverride1, INT iOverride2, INT iOverride3, INT iOverride4, INT iOverride5)
|
|
g_iCachedRNGValues_InsideTrackOverride[0] = iOverride0
|
|
g_iCachedRNGValues_InsideTrackOverride[1] = iOverride1
|
|
g_iCachedRNGValues_InsideTrackOverride[2] = iOverride2
|
|
g_iCachedRNGValues_InsideTrackOverride[3] = iOverride3
|
|
g_iCachedRNGValues_InsideTrackOverride[4] = iOverride4
|
|
g_iCachedRNGValues_InsideTrackOverride[5] = iOverride5
|
|
ENDPROC
|
|
|
|
PROC UPDATE_RNG_OUTPUT_INSIDE_TRACK_SELECTION(INT iSelection)
|
|
SWITCH iSelection
|
|
|
|
CASE -1
|
|
SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(-1,-1,-1,-1,-1,-1)
|
|
BREAK
|
|
|
|
// Max/Min Distribution
|
|
CASE 0 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(28,46,23,72,3,63) BREAK
|
|
CASE 1 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(62,99,64,82,76,83) BREAK
|
|
CASE 2 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(28,99,23,82,3,83) BREAK
|
|
CASE 3 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(28,46,64,82,76,83) BREAK
|
|
CASE 4 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(62,99,23,72,76,83) BREAK
|
|
CASE 5 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(62,99,64,82,3,63) BREAK
|
|
CASE 6 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(28,99,64,82,76,83) BREAK
|
|
CASE 7 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(62,99,23,82,76,83) BREAK
|
|
CASE 8 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(62,99,64,82,3,83) BREAK
|
|
|
|
// Random
|
|
CASE 9 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(97,27,23,18,14,63) BREAK
|
|
CASE 10 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(99,85,29,34,83,59) BREAK
|
|
CASE 11 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(19,13,30,52,55,91) BREAK
|
|
CASE 12 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(48,28,16,8,1,90) BREAK
|
|
CASE 13 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(27,36,37,18,54,43) BREAK
|
|
CASE 14 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(44,13,29,18,3,5) BREAK
|
|
CASE 15 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(13,74,78,88,1,54) BREAK
|
|
CASE 16 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(85,41,12,71,75,11) BREAK
|
|
CASE 17 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(48,28,30,34,63,3) BREAK
|
|
CASE 18 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(19,39,16,64,5,14) BREAK
|
|
CASE 19 SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(68,84,88,25,1,32) BREAK
|
|
|
|
// Sink
|
|
DEFAULT
|
|
SET_RNG_OUTPUT_INSIDE_TRACK_SELECTION(0,0,0,0,0,0)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
FUNC INT GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(INT iHorseEnumID)
|
|
SWITCH iHorseEnumID
|
|
// Favourite
|
|
CASE 7 RETURN 1
|
|
CASE 9 RETURN 2
|
|
CASE 13 RETURN 3
|
|
CASE 15 RETURN 4
|
|
CASE 19 RETURN 5
|
|
CASE 26 RETURN 6
|
|
CASE 27 RETURN 7
|
|
CASE 28 RETURN 8
|
|
CASE 36 RETURN 9
|
|
CASE 39 RETURN 10
|
|
CASE 41 RETURN 11
|
|
CASE 42 RETURN 12
|
|
CASE 44 RETURN 13
|
|
CASE 46 RETURN 14
|
|
CASE 48 RETURN 15
|
|
CASE 49 RETURN 16
|
|
CASE 50 RETURN 17
|
|
CASE 51 RETURN 18
|
|
CASE 60 RETURN 19
|
|
CASE 61 RETURN 20
|
|
CASE 62 RETURN 21
|
|
CASE 68 RETURN 22
|
|
CASE 70 RETURN 23
|
|
CASE 73 RETURN 24
|
|
CASE 74 RETURN 25
|
|
CASE 79 RETURN 26
|
|
CASE 84 RETURN 27
|
|
CASE 85 RETURN 28
|
|
CASE 89 RETURN 29
|
|
CASE 92 RETURN 30
|
|
CASE 97 RETURN 31
|
|
CASE 98 RETURN 32
|
|
CASE 99 RETURN 33
|
|
|
|
// Middle
|
|
CASE 4 RETURN 1
|
|
CASE 6 RETURN 2
|
|
CASE 8 RETURN 3
|
|
CASE 12 RETURN 4
|
|
CASE 16 RETURN 5
|
|
CASE 17 RETURN 6
|
|
CASE 18 RETURN 7
|
|
CASE 23 RETURN 8
|
|
CASE 24 RETURN 9
|
|
CASE 25 RETURN 10
|
|
CASE 29 RETURN 11
|
|
CASE 30 RETURN 12
|
|
CASE 34 RETURN 13
|
|
CASE 35 RETURN 14
|
|
CASE 37 RETURN 15
|
|
CASE 45 RETURN 16
|
|
CASE 47 RETURN 17
|
|
CASE 52 RETURN 18
|
|
CASE 53 RETURN 19
|
|
CASE 58 RETURN 20
|
|
CASE 64 RETURN 21
|
|
CASE 65 RETURN 22
|
|
CASE 71 RETURN 23
|
|
CASE 72 RETURN 24
|
|
CASE 78 RETURN 25
|
|
CASE 81 RETURN 26
|
|
CASE 82 RETURN 27
|
|
CASE 86 RETURN 28
|
|
CASE 88 RETURN 29
|
|
CASE 93 RETURN 30
|
|
CASE 94 RETURN 31
|
|
CASE 96 RETURN 32
|
|
|
|
// Outlier
|
|
CASE 1 RETURN 1
|
|
CASE 2 RETURN 2
|
|
CASE 3 RETURN 3
|
|
CASE 5 RETURN 4
|
|
CASE 10 RETURN 5
|
|
CASE 11 RETURN 6
|
|
CASE 14 RETURN 7
|
|
CASE 20 RETURN 8
|
|
CASE 21 RETURN 9
|
|
CASE 22 RETURN 10
|
|
CASE 31 RETURN 11
|
|
CASE 32 RETURN 12
|
|
CASE 33 RETURN 13
|
|
CASE 38 RETURN 14
|
|
CASE 40 RETURN 15
|
|
CASE 43 RETURN 16
|
|
CASE 54 RETURN 17
|
|
CASE 55 RETURN 18
|
|
CASE 56 RETURN 19
|
|
CASE 57 RETURN 20
|
|
CASE 59 RETURN 21
|
|
CASE 63 RETURN 22
|
|
CASE 66 RETURN 23
|
|
CASE 67 RETURN 24
|
|
CASE 69 RETURN 25
|
|
CASE 75 RETURN 26
|
|
CASE 76 RETURN 27
|
|
CASE 77 RETURN 28
|
|
CASE 80 RETURN 29
|
|
CASE 83 RETURN 30
|
|
CASE 87 RETURN 31
|
|
CASE 90 RETURN 32
|
|
CASE 91 RETURN 33
|
|
CASE 95 RETURN 34
|
|
ENDSWITCH
|
|
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
PROC GET_RNG_OUTPUT_FILENAME(INT iTypeOverride = -1)
|
|
|
|
INT iType = sRNGData.iType
|
|
IF iTypeOverride != -1
|
|
iType = iTypeOverride
|
|
ENDIF
|
|
|
|
sRNGData.tlFilename = "RNGnums_("
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_TYPE_NAME(iType)
|
|
sRNGData.tlFilename += ")"
|
|
|
|
IF (iType = RNG_OUTPUT_INSIDE_TRACK_DISTRO)
|
|
sRNGData.tlFilename += "_selections("
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionFavourite[0])
|
|
sRNGData.tlFilename += ","
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionFavourite[1])
|
|
sRNGData.tlFilename += ","
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionMiddle[0])
|
|
sRNGData.tlFilename += ","
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionMiddle[1])
|
|
sRNGData.tlFilename += ","
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionOutlier[0])
|
|
sRNGData.tlFilename += ","
|
|
sRNGData.tlFilename += GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionOutlier[1])
|
|
sRNGData.tlFilename += ")"
|
|
ENDIF
|
|
|
|
sRNGData.tlFilename += "1"
|
|
INT i
|
|
REPEAT (sRNGData.iItemCount / RNG_OUTPUT_SAMPLE_SIZE_PER_FILE) i
|
|
sRNGData.tlFilename += "1"
|
|
ENDREPEAT
|
|
|
|
sRNGData.tlFilename += ".txt"
|
|
ENDPROC
|
|
|
|
PROC DO_INITIALISE()
|
|
START_WIDGET_GROUP("RNG Output")
|
|
|
|
START_WIDGET_GROUP("Dataset")
|
|
START_NEW_WIDGET_COMBO()
|
|
INT iType
|
|
REPEAT RNG_OUTPUT_TYPE_COUNT iType
|
|
ADD_TO_WIDGET_COMBO(GET_RNG_OUTPUT_TYPE_NAME(iType))
|
|
ENDREPEAT
|
|
STOP_WIDGET_COMBO("Type", sRNGData.iType)
|
|
|
|
ADD_WIDGET_INT_SLIDER("Sample size", RNG_OUTPUT_SAMPLE_SIZE, 0, 100000000, 1000000)
|
|
ADD_WIDGET_INT_SLIDER("Sample size per file", RNG_OUTPUT_SAMPLE_SIZE_PER_FILE, 0, 100000000, 1000000)
|
|
ADD_WIDGET_INT_SLIDER("Sample size per frame", RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME, 0, 100000000, 1000000)
|
|
ADD_WIDGET_INT_SLIDER("File write frame delay", RNG_OUTPUT_FILE_WRITE_FRAME_DELAY, 0, 10000, 1000)
|
|
|
|
ADD_WIDGET_INT_READ_ONLY("Current sample", sRNGData.iItemCount)
|
|
ADD_WIDGET_FLOAT_READ_ONLY("Percentage complete", sRNGData.fPercentageComplete)
|
|
|
|
ADD_WIDGET_INT_READ_ONLY("Current selection", sRNGData.iItemSelection)
|
|
|
|
sRNGData.twRunningTime = ADD_TEXT_WIDGET("Running time")
|
|
|
|
ADD_WIDGET_BOOL("Generate", sRNGData.bRun)
|
|
ADD_WIDGET_BOOL("Pause", sRNGData.bPause)
|
|
ADD_WIDGET_BOOL("Generate Full Dataset", sRNGData.bGenerateDataset)
|
|
|
|
STOP_WIDGET_GROUP()
|
|
STOP_WIDGET_GROUP()
|
|
|
|
eStage = STAGE_PROCESSING
|
|
ENDPROC
|
|
|
|
PROC DO_PROCESSING()
|
|
|
|
INT iSelection
|
|
INT iSample
|
|
|
|
IF sRNGData.bPause
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF sRNGData.bGenerateDataset
|
|
IF NOT sRNGData.bInitDataset
|
|
|
|
sRNGData.bInitDataset = TRUE
|
|
sRNGData.bInit = TRUE
|
|
sRNGData.iItemCount = 0
|
|
sRNGData.iItemSelection = 0
|
|
sRNGData.iFrameCountSinceWrite = 0
|
|
sRNGData.iType = 0//-1
|
|
sRNGData.fPercentageComplete = 0
|
|
|
|
SETUP_SLOT_MACHINES(slotSetup, localSlots)
|
|
|
|
TCP_INIT_AND_SHUFFLE_DECK(sTCPDeck)
|
|
|
|
BJACK_INIT_AND_SHUFFLE_DECK(sBJDeck)
|
|
ENDIF
|
|
|
|
IF NOT sRNGData.bRun
|
|
|
|
sRNGData.iType++
|
|
sRNGData.bRun = TRUE
|
|
sRNGData.bInit = TRUE
|
|
sRNGData.iItemCount = 0
|
|
sRNGData.iItemSelection = 0
|
|
sRNGData.iFrameCountSinceWrite = 0
|
|
|
|
IF (sRNGData.iType = RNG_OUTPUT_SLOTS)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 50000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 50000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 5000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_SLOTS_PRIZE)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 10000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 10000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 5000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_ROULETTE)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 50000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 50000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 10000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_3_CARD_POKER)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 50000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 5000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 5000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_BLACKJACK)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 10000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 2000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 5000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_LUCKY_WHEEL)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 100000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 100000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 10000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_INSIDE_TRACK)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 100000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 100000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 10000
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_INSIDE_TRACK_DISTRO)
|
|
RNG_OUTPUT_SAMPLE_SIZE = 100000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FILE = 100000000
|
|
RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME = 10000
|
|
ELSE
|
|
sRNGData.bGenerateDataset = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
sRNGData.bInitDataset = FALSE
|
|
ENDIF
|
|
|
|
IF sRNGData.bRun
|
|
|
|
IF NOT sRNGData.bInit
|
|
sRNGData.bInit = TRUE
|
|
sRNGData.iItemCount = 0
|
|
sRNGData.iFrameCountSinceWrite = 0
|
|
sRNGData.iItemSelection = 1
|
|
|
|
SETUP_SLOT_MACHINES(slotSetup, localSlots)
|
|
|
|
TCP_INIT_AND_SHUFFLE_DECK(sTCPDeck)
|
|
|
|
BJACK_INIT_AND_SHUFFLE_DECK(sBJDeck)
|
|
|
|
UPDATE_RNG_OUTPUT_INSIDE_TRACK_SELECTION(-1)
|
|
|
|
|
|
sRNGData.iTimer = GET_CLOUD_TIME_AS_INT()
|
|
ENDIF
|
|
|
|
IF sRNGData.iFrameCountSinceWrite < RNG_OUTPUT_FILE_WRITE_FRAME_DELAY
|
|
sRNGData.iFrameCountSinceWrite++
|
|
EXIT
|
|
ENDIF
|
|
|
|
sRNGData.iFrameCountSinceWrite = 0
|
|
|
|
IF (sRNGData.iType = RNG_OUTPUT_SLOTS)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
DETERMINE_SLOT_MACHINE_RESULT(0, results, slotSetup, localSlots, iOverrideReelResult, iOverrideWheelResult)
|
|
|
|
REPEAT GET_RNG_OUTPUT_SELECTION_SIZE(sRNGData.iType) iSelection
|
|
IF iSelection > 0
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
ENDIF
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(results.iVirtualReelPos[iSelection], "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
ENDREPEAT
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_SLOTS_PRIZE)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
iOverrideReelResult[0] = SRS_WILD
|
|
iOverrideReelResult[1] = SRS_WILD
|
|
iOverrideReelResult[2] = SRS_WILD
|
|
|
|
DETERMINE_SLOT_MACHINE_RESULT(0, results, slotSetup, localSlots, iOverrideReelResult, iOverrideWheelResult)
|
|
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(results.iWheelPos, "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_ROULETTE)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(ROULETTE_GENERATE_WINNING_NUMBER(), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_3_CARD_POKER)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
TCP_SHUFFLE_DECK(sTCPDeck)
|
|
|
|
REPEAT GET_RNG_OUTPUT_SELECTION_SIZE(sRNGData.iType) iSelection
|
|
IF iSelection > 0
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
ENDIF
|
|
//SAVE_INT_TO_NAMED_DEBUG_FILE(ENUM_TO_INT(sTCPDeck.eCards[iSelection]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(g_iCachedRNGValues_Poker[iSelection], "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
ENDREPEAT
|
|
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_BLACKJACK)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
BJACK_SHUFFLE_DECK(sBJDeck)
|
|
|
|
REPEAT GET_RNG_OUTPUT_SELECTION_SIZE(sRNGData.iType) iSelection
|
|
IF iSelection > 0
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
ENDIF
|
|
//SAVE_INT_TO_NAMED_DEBUG_FILE(ENUM_TO_INT(sBJDeck.eCards[iSelection]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(g_iCachedRNGValues_Blackjack[iSelection], "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
ENDREPEAT
|
|
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_LUCKY_WHEEL)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
//SAVE_INT_TO_NAMED_DEBUG_FILE(ENUM_TO_INT(PICK_RANDOM_LUCK_REWARD_TYPE()), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
PICK_RANDOM_LUCK_REWARD_TYPE()
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(g_iCachedRNGValues_LuckyWheel, "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_RAW)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RANDOM_MWC_INT_IN_RANGE(0, 2147483647), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_INSIDE_TRACK)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
SET_BIT(sRaceData.iBS, BS_RACE_INSIDE_TRACK_MINIGAME_SINGLE_EVENT)
|
|
MAINTAIN_INSIDE_TRACK_MINIGAME_SETUP_NEW_GAME(sRaceData, TRUE)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionFavourite[0]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionFavourite[1]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionMiddle[0]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionMiddle[1]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionOutlier[0]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackSelectionOutlier[1]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
RANDOMISE_INSIDE_TRACK_MINIGAME_REWARD(sRaceData)
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
ELIF (sRNGData.iType = RNG_OUTPUT_INSIDE_TRACK_DISTRO)
|
|
|
|
UPDATE_RNG_OUTPUT_INSIDE_TRACK_SELECTION(sRNGData.iItemSelection)
|
|
|
|
REPEAT RNG_OUTPUT_SAMPLE_SIZE_PER_FRAME iSample
|
|
IF sRNGData.iItemCount < RNG_OUTPUT_SAMPLE_SIZE
|
|
|
|
SET_BIT(sRaceData.iBS, BS_RACE_INSIDE_TRACK_MINIGAME_SINGLE_EVENT)
|
|
|
|
MAINTAIN_INSIDE_TRACK_MINIGAME_SETUP_NEW_GAME(sRaceData, TRUE)
|
|
RANDOMISE_INSIDE_TRACK_MINIGAME_REWARD(sRaceData)
|
|
|
|
GET_RNG_OUTPUT_FILENAME()
|
|
OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_INT_TO_NAMED_DEBUG_FILE(GET_RNG_OUTPUT_INSIDE_TRACK_LOCAL_HORSE_INDEX(g_iCachedRNGValues_InsideTrackFinish[0]), "X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", sRNGData.tlFilename)
|
|
CLOSE_DEBUG_FILE()
|
|
|
|
sRNGData.iItemCount++
|
|
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
UPDATE_RNG_OUTPUT_INSIDE_TRACK_SELECTION(-1)
|
|
|
|
ENDIF
|
|
|
|
sRNGData.fPercentageComplete = (TO_FLOAT(sRNGData.iItemCount) / TO_FLOAT(RNG_OUTPUT_SAMPLE_SIZE))*100.0
|
|
|
|
IF sRNGData.iItemCount >= RNG_OUTPUT_SAMPLE_SIZE
|
|
sRNGData.bRun = FALSE
|
|
|
|
IF (sRNGData.iType = RNG_OUTPUT_INSIDE_TRACK_DISTRO)
|
|
sRNGData.iItemSelection++
|
|
IF sRNGData.iItemSelection < RNG_OUTPUT_INSIDE_TRACK_SELECTION_SIZE
|
|
sRNGData.bRun = TRUE
|
|
sRNGData.iItemCount = 0
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT iRunningTime = (GET_CLOUD_TIME_AS_INT() - sRNGData.iTimer)
|
|
|
|
INT iHours = (iRunningTime/3600)
|
|
INT iMinutes = ((iRunningTime%3600)/60)
|
|
INT iSeconds = ((iRunningTime%3600)%60)
|
|
|
|
TEXT_LABEL_63 tlRunningTime = ""
|
|
|
|
IF iHours < 10
|
|
tlRunningTime += "0"
|
|
ENDIF
|
|
tlRunningTime += iHours
|
|
tlRunningTime += ":"
|
|
IF iMinutes < 10
|
|
tlRunningTime += "0"
|
|
ENDIF
|
|
tlRunningTime += iMinutes
|
|
tlRunningTime += ":"
|
|
IF iSeconds < 10
|
|
tlRunningTime += "0"
|
|
ENDIF
|
|
tlRunningTime += iSeconds
|
|
|
|
SET_CONTENTS_OF_TEXT_WIDGET(sRNGData.twRunningTime, tlRunningTime)
|
|
|
|
ELIF sRNGData.bInit
|
|
sRNGData.bInit = FALSE
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC DO_CLEANUP()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDPROC
|
|
|
|
SCRIPT
|
|
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
WHILE TRUE
|
|
|
|
WAIT(0)
|
|
|
|
SWITCH eStage
|
|
CASE STAGE_INIT
|
|
DO_INITIALISE()
|
|
BREAK
|
|
|
|
CASE STAGE_PROCESSING
|
|
DO_PROCESSING()
|
|
BREAK
|
|
|
|
CASE STAGE_CLEANUP
|
|
DO_CLEANUP()
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
// IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_DOWN)
|
|
//
|
|
// INT iHorseIDTemp, iThisOdds
|
|
// FOR iHorseIDTemp = ENUM_TO_INT(INSIDE_TRACK_HORSE_ATetheredEnd) TO ENUM_TO_INT(INSIDE_TRACK_HORSE_TYPE_COUNT)-1
|
|
// iThisOdds = GET_INSIDE_TRACK_MINIGAME_SCALEFORM_HORSE_ODDS(INT_TO_ENUM(INSIDE_TRACK_HORSE_TYPE, iHorseIDTemp))
|
|
//
|
|
// CLEAR_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", "horse_info.txt")
|
|
//
|
|
// OPEN_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", "horse_info.txt")
|
|
//
|
|
// SAVE_INT_TO_NAMED_DEBUG_FILE(iHorseIDTemp, "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// SAVE_INT_TO_NAMED_DEBUG_FILE(iThisOdds, "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// SAVE_STRING_TO_NAMED_DEBUG_FILE("/1", "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// SAVE_STRING_TO_NAMED_DEBUG_FILE(",", "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
//
|
|
// IF (iThisOdds <= 5)
|
|
// SAVE_STRING_TO_NAMED_DEBUG_FILE("Favourite", "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// ELIF (iThisOdds <= 15)
|
|
// SAVE_STRING_TO_NAMED_DEBUG_FILE("Middle", "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// ELSE
|
|
// SAVE_STRING_TO_NAMED_DEBUG_FILE("Outlier", "X:/gta5/titleupdate/dev_ng/RNG", "horse_info.xls")
|
|
// ENDIF
|
|
//
|
|
// SAVE_NEWLINE_TO_NAMED_DEBUG_FILE("X:/gta5/titleupdate/dev_ng/RNG", "horse_info.txt")
|
|
//
|
|
//
|
|
// CLOSE_DEBUG_FILE()
|
|
//
|
|
//
|
|
// ENDFOR
|
|
//
|
|
// ENDIF
|
|
ENDWHILE
|
|
|
|
ENDSCRIPT
|
|
|
|
#ENDIF
|