diff --git a/src/ts/parser.svelte.ts b/src/ts/parser.svelte.ts
index 72e1254c..3ad61a3b 100644
--- a/src/ts/parser.svelte.ts
+++ b/src/ts/parser.svelte.ts
@@ -311,14 +311,18 @@ async function replaceAsync(string, regexp, replacerFunction) {
return string.replace(regexp, () => replacements[i++])
}
-async function getAssetSrc(assetArr: string[][], name: string, assetPaths: {[key: string]:{path: string, ext?: string}}) {
+async function getAssetSrc(assetArr: string[][], name: string, assetPaths: {[key: string]:{path: string[], ext?: string}}) {
for (const asset of assetArr) {
if (trimmer(asset[0].toLocaleLowerCase()) !== trimmer(name)) continue
const assetPath = await getFileSrc(asset[1])
- assetPaths[asset[0].toLocaleLowerCase()] = {
- path: assetPath,
+ const key = asset[0].toLocaleLowerCase()
+ assetPaths[key] = {
+ path: [],
ext: asset[2]
}
+ if(assetPaths[key].ext === asset[2]){
+ assetPaths[key].path.push(assetPath)
+ }
return
}
}
@@ -332,11 +336,11 @@ async function getEmoSrc(emoArr: string[][], emoPaths: {[key: string]:{path: str
}
}
-async function parseAdditionalAssets(data:string, char:simpleCharacterArgument|character, mode:'normal'|'back', mode2:'unset'|'pre'|'post' = 'unset'){
+async function parseAdditionalAssets(data:string, char:simpleCharacterArgument|character, mode:'normal'|'back', arg:{ch:number}){
const assetWidthString = (DBState.db.assetWidth && DBState.db.assetWidth !== -1 || DBState.db.assetWidth === 0) ? `max-width:${DBState.db.assetWidth}rem;` : ''
let assetPaths:{[key:string]:{
- path:string
+ path:string[]
ext?:string
}} = {}
let emoPaths:{[key:string]:{
@@ -391,33 +395,39 @@ async function parseAdditionalAssets(data:string, char:simpleCharacterArgument|c
return ''
}
}
+
+ let p = path.path[0]
+
+ if(path.path.length > 1){
+ p = path.path[Math.floor(arg.ch % p.length)]
+ }
switch(type){
case 'raw':
case 'path':
- return path.path
+ return p
case 'img':
- return ``
+ return `
`
case 'image':
- return `