Skip to content
Permalink
Browse files

install-verify: support a bundled version of AF

The only difference is that the speech.pak differs from the normal
german version: all files in 'speech/deutsch' match, but the files
in 'speech/francais' and 'speech/english' differ (both contents and
which files are present). In the normal german version these directories
are just copies of 'speech/deutsch'.

We'll have to see if this speech.pak is also used for non-german
releases (or maybe the bundled version was multilang?) and thus would
need a different loc.pak
  • Loading branch information
dscharrer committed Aug 4, 2012
1 parent 77a9616 commit e2ef54a66bc1347f289f279d73d980d377c49598
Showing with 103 additions and 46 deletions.
  1. +103 −46 scripts/install-verify
@@ -1,7 +1,8 @@
#!/bin/sh

# Verify arx fatalis non-demo checksums.
# This script is meant to be run on it's own or sourced by the other install scripts.
# This script is meant to be run on it's own or sourced by the other
# install scripts.

# List of required files

@@ -70,22 +71,42 @@ md5sum=`which md5sum 2> /dev/null`
data_lang='english'
detect_language() {

speech_checksum=`find '.' -iname "speech.pak" -exec "$md5sum" -b {} \; | sed "s/ .*//g"`
speech_checksum=`find '.' -iname "speech.pak" -exec "$md5sum" -b {} \; \
| sed "s/ .*//g"`
if [ "$speech_checksum" = '' ] ; then
speech_checksum=`find '.' -iname "speech_default.pak" -exec "$md5sum" -b {} \; | sed "s/ .*//g"`
speech_checksum=`find '.' -iname "speech_default.pak" \
-exec "$md5sum" -b {} \; | sed "s/ .*//g"`
fi

# check if the checksum is of a known localisation and set data_lang to
# the language string to be used with the 1.21 patch installer
case "$speech_checksum" in
'4c3fdb1f702700255924afde49081b6e') data_lang='german' ; loc_checksum='31bc35bca48e430e108db1b8bcc2621d' ;;
'4e8f962d8204bcfd79ce6f3226d6d6de') data_lang='english' ; loc_checksum='a47b192493afb5794e2161a62d35b69f' ;;
'2f88c67ae1537919e69386d27583125b') data_lang='spanish' ; loc_checksum='121f99608814a2c9c5857cfadb665553' ;;
'4edf9f8c799190590b4cd52cfa5f91b1') data_lang='french' ; loc_checksum='f8fc448fea12469ed94f417c313fe5ea' ;;
'81f05dea47c52d43f01c9b44dd8fe962') data_lang='italian' ; loc_checksum='a9e162f2916f5737a95bd8c5bd8a979e' ;;
'677163bc319cd1e9aa1b53b5fb3e9402') data_lang='russian' ; loc_checksum='a131bf2398ee70a9c22a2bbffd9d0d99' ;;

'4c3fdb1f702700255924afde49081b6e') data_lang='german'
loc_checksum='31bc35bca48e430e108db1b8bcc2621d' ;;

# Bundled version of AF included with NVIDIA card
'ab8a93161688d793a7c78fbefd7d133e') data_lang='german'
loc_checksum='31bc35bca48e430e108db1b8bcc2621d' ;;

'4e8f962d8204bcfd79ce6f3226d6d6de') data_lang='english'
loc_checksum='a47b192493afb5794e2161a62d35b69f' ;;

'2f88c67ae1537919e69386d27583125b') data_lang='spanish'
loc_checksum='121f99608814a2c9c5857cfadb665553' ;;

'4edf9f8c799190590b4cd52cfa5f91b1') data_lang='french'
loc_checksum='f8fc448fea12469ed94f417c313fe5ea' ;;

'81f05dea47c52d43f01c9b44dd8fe962') data_lang='italian'
loc_checksum='a9e162f2916f5737a95bd8c5bd8a979e' ;;

'677163bc319cd1e9aa1b53b5fb3e9402') data_lang='russian'
loc_checksum='a131bf2398ee70a9c22a2bbffd9d0d99' ;;

'') die "speech*.pak not found in $(pwd)" ;;
*) die "unsupported data language - speech*.pak checksum: $speech_checksum" ;;
*) die "unsupported data language - speech*.pak checksum:" \
"$speech_checksum" ;;
esac

echo "
@@ -138,41 +159,76 @@ Done:"
checksum_failed=0

# Common files
verify_checksum 'data2.pak' 'f7e0ce700bf963429ac535ca86f8a7b4'
verify_checksum 'graph/interface/misc/arkane.bmp' 'afff1099c01ffeb03b9a351f7b5966b6'
verify_checksum 'graph/interface/misc/quit1.bmp' '41445d3792a1f8818d950aca47254488'
verify_checksum 'graph/obj3d/textures/fixinter_barrel.jpg' '8419274acbff7346c3661b18d6aad6dc'
verify_checksum 'graph/obj3d/textures/fixinter_bell.bmp' '5743b9047c9ad65540c318dfcc98123a'
verify_checksum 'graph/obj3d/textures/fixinter_metal_door.jpg' 'f246eff6b19c9c710313b4a4dce96a69'
verify_checksum 'graph/obj3d/textures/fixinter_public_notice.bmp' 'f81394abbb9006ce0950843b7909db33'
verify_checksum 'graph/obj3d/textures/item_bread.bmp' '544448f8eedc912aa231a6a04fffb7c5'
verify_checksum 'graph/obj3d/textures/item_club.jpg' '7e26c4199ddaca494c8b369294306b0b'
verify_checksum 'graph/obj3d/textures/item_long_sword.jpg' '3a6196fe9b7666c7d80d82be06f6de86'
verify_checksum 'graph/obj3d/textures/item_mauld_sabre.jpg' '18492c25ebac02f83e2f0ebda61ecb00'
verify_checksum 'graph/obj3d/textures/item_mauldsword.jpg' '503a5c2f23668040c675aefdde6dbbe5'
verify_checksum 'graph/obj3d/textures/item_mirror.jpg' 'c0a22b4f7a7a6461da68206e94928637'
verify_checksum 'graph/obj3d/textures/item_ring_casting.bmp' '348f9add709bacee08556d1f8cf10f3f'
verify_checksum 'graph/obj3d/textures/item_rope.bmp' 'ff05de281c8b380ee98f6e123d3d51cb'
verify_checksum 'graph/obj3d/textures/item_spell_sheet.jpg' '024ccbb520020f92fba5a5a4f0270cea'
verify_checksum 'graph/obj3d/textures/item_torch2.jpg' '027951899b4829599ca611010ea3484f'
verify_checksum 'graph/obj3d/textures/item_torch.jpg' '9ada166f23ddcb775ac20836e752187e'
verify_checksum 'graph/obj3d/textures/item_zohark.bmp' 'cd206a4027f86c6e57b7710c94049efa'
verify_checksum 'graph/obj3d/textures/l7_dwarf_[wood]_board08.jpg' '79ccc81adb7c37b98f40b478ef1fccd4'
verify_checksum 'graph/obj3d/textures/l7_dwarf_[wood]_board80.jpg' '691611087b13d38ef02bb9dfd6a2518e'
verify_checksum 'graph/obj3d/textures/npc_dog.bmp' '116bd374c14ae8c387a4da1899e1dca7'
verify_checksum 'graph/obj3d/textures/npc_pig.bmp' 'b7a4d0d3d230b2d1470176909004e38b'
verify_checksum 'graph/obj3d/textures/npc_pig_dirty.bmp' '76034d8d74056c8a982479d36321c228'
verify_checksum 'graph/obj3d/textures/npc_rat_base.bmp' '00c585ec9ebe8006d7ca72993de7b51b'
verify_checksum 'graph/obj3d/textures/npc_rat_base_cm.bmp' 'cae38facbf77db742180b9e58d0eb42f'
verify_checksum 'graph/obj3d/textures/npc_worm_body_part1.jpg' '0b220bffaedc89fa663f08d12630c342'
verify_checksum 'graph/obj3d/textures/npc_worm_body_part2.bmp' '20797cb78f6393a0fb5405969ba9f805'
verify_checksum 'graph/obj3d/textures/[wood]_light_door.jpg' '00d0b018e995e7d013d6e52e92126901'
verify_checksum 'misc/arx_default.ttf' '9a95ff96795c034524ba1c2e94ea12c7'
verify_checksum 'misc/arx_russian.ttf' '921561e83786efcd25f92147b60a13db'
verify_checksum 'misc/arx_taiwanese.ttf' 'da59198061cef0761c6b2fca113f76f6'
verify_checksum 'misc/logo.avi' '63ed31a4eb3d226c23e58cfaa974d484'
verify_checksum 'misc/logo.bmp' 'afff1099c01ffeb03b9a351f7b5966b6'
verify_checksum 'sfx.pak' '2efc9a74c517fd1ee9919900cf4091d2'
verify_checksum 'data2.pak' \
'f7e0ce700bf963429ac535ca86f8a7b4'
verify_checksum 'graph/interface/misc/arkane.bmp' \
'afff1099c01ffeb03b9a351f7b5966b6'
verify_checksum 'graph/interface/misc/quit1.bmp' \
'41445d3792a1f8818d950aca47254488'
verify_checksum 'graph/obj3d/textures/fixinter_barrel.jpg' \
'8419274acbff7346c3661b18d6aad6dc'
verify_checksum 'graph/obj3d/textures/fixinter_bell.bmp' \
'5743b9047c9ad65540c318dfcc98123a'
verify_checksum 'graph/obj3d/textures/fixinter_metal_door.jpg' \
'f246eff6b19c9c710313b4a4dce96a69'
verify_checksum 'graph/obj3d/textures/fixinter_public_notice.bmp' \
'f81394abbb9006ce0950843b7909db33'
verify_checksum 'graph/obj3d/textures/item_bread.bmp' \
'544448f8eedc912aa231a6a04fffb7c5'
verify_checksum 'graph/obj3d/textures/item_club.jpg' \
'7e26c4199ddaca494c8b369294306b0b'
verify_checksum 'graph/obj3d/textures/item_long_sword.jpg' \
'3a6196fe9b7666c7d80d82be06f6de86'
verify_checksum 'graph/obj3d/textures/item_mauld_sabre.jpg' \
'18492c25ebac02f83e2f0ebda61ecb00'
verify_checksum 'graph/obj3d/textures/item_mauldsword.jpg' \
'503a5c2f23668040c675aefdde6dbbe5'
verify_checksum 'graph/obj3d/textures/item_mirror.jpg' \
'c0a22b4f7a7a6461da68206e94928637'
verify_checksum 'graph/obj3d/textures/item_ring_casting.bmp' \
'348f9add709bacee08556d1f8cf10f3f'
verify_checksum 'graph/obj3d/textures/item_rope.bmp' \
'ff05de281c8b380ee98f6e123d3d51cb'
verify_checksum 'graph/obj3d/textures/item_spell_sheet.jpg' \
'024ccbb520020f92fba5a5a4f0270cea'
verify_checksum 'graph/obj3d/textures/item_torch2.jpg' \
'027951899b4829599ca611010ea3484f'
verify_checksum 'graph/obj3d/textures/item_torch.jpg' \
'9ada166f23ddcb775ac20836e752187e'
verify_checksum 'graph/obj3d/textures/item_zohark.bmp' \
'cd206a4027f86c6e57b7710c94049efa'
verify_checksum 'graph/obj3d/textures/l7_dwarf_[wood]_board08.jpg' \
'79ccc81adb7c37b98f40b478ef1fccd4'
verify_checksum 'graph/obj3d/textures/l7_dwarf_[wood]_board80.jpg' \
'691611087b13d38ef02bb9dfd6a2518e'
verify_checksum 'graph/obj3d/textures/npc_dog.bmp' \
'116bd374c14ae8c387a4da1899e1dca7'
verify_checksum 'graph/obj3d/textures/npc_pig.bmp' \
'b7a4d0d3d230b2d1470176909004e38b'
verify_checksum 'graph/obj3d/textures/npc_pig_dirty.bmp' \
'76034d8d74056c8a982479d36321c228'
verify_checksum 'graph/obj3d/textures/npc_rat_base.bmp' \
'00c585ec9ebe8006d7ca72993de7b51b'
verify_checksum 'graph/obj3d/textures/npc_rat_base_cm.bmp' \
'cae38facbf77db742180b9e58d0eb42f'
verify_checksum 'graph/obj3d/textures/npc_worm_body_part1.jpg' \
'0b220bffaedc89fa663f08d12630c342'
verify_checksum 'graph/obj3d/textures/npc_worm_body_part2.bmp' \
'20797cb78f6393a0fb5405969ba9f805'
verify_checksum 'graph/obj3d/textures/[wood]_light_door.jpg' \
'00d0b018e995e7d013d6e52e92126901'
verify_checksum 'misc/arx_default.ttf' \
'9a95ff96795c034524ba1c2e94ea12c7'
verify_checksum 'misc/arx_russian.ttf' \
'921561e83786efcd25f92147b60a13db'
verify_checksum 'misc/arx_taiwanese.ttf' \
'da59198061cef0761c6b2fca113f76f6'
verify_checksum 'misc/logo.avi' \
'63ed31a4eb3d226c23e58cfaa974d484'
verify_checksum 'misc/logo.bmp' \
'afff1099c01ffeb03b9a351f7b5966b6'
verify_checksum 'sfx.pak' \
'2efc9a74c517fd1ee9919900cf4091d2'

# data.pak is censored in some versions (presumably has less gore)
# At least the original german and italian CDs have the censored version.
@@ -186,7 +242,8 @@ Done:"

# Language-specific files
verify_checksum 'loc.pak' "$loc_checksum"
# There is no need to check speech.pak here as we already used it to detect $loc_checksum
# There is no need to check speech.pak here as we already used it to
# detect $loc_checksum

[ $checksum_failed = 0 ] || die "
ERROR: Checksum mismatch."

0 comments on commit e2ef54a

Please sign in to comment.