Even though I'm still new , I can offer advice on how I would do it.
For different terrain detection, I would try creating invisible low polygon entities over different terrain that will control camera shake movement variables, walking speed vars & sound upon collision or detection.